Google Maps v3 InfoBox Добавить прослушиватель событий - PullRequest
5 голосов
/ 27 июня 2011

У меня есть Google Map (v3) с 20 маркерами. У меня есть один экземпляр InfoBox, который заполняется div, который содержит текст для заполнения поля как innerHTML.

Я хочу иметь возможность щелкнуть инфобокс и перейти на другую страницу, но не могу получить инфобокс или div внутри него, чтобы ответить на событие клика.

Я пытался добавить прослушиватель событий и пытался добавить domListener, но я не могу заставить их работать.

Вот некоторые фрагменты из моего кода

//setting up the infobox

    var infobox = new InfoBox({
           disableAutoPan: true
          ,isHidden:false
          ,pixelOffset: new google.maps.Size(-10, -10)
          ,closeBoxURL: ""
          ,pane: "mapPane"
          ,enableEventPropagation: true
        });

    //setting up the div

    var boxText1 = document.createElement("div");
        boxText1.id = "boxText1";
        boxText1.className = "labelText";
        boxText1.innerHTML = title1;//this is created earlier

    //the marker event listener - the marker and coordinates are also set up earlier
       google.maps.event.addListener(_marker1, 'click', function() { 
       infobox.content_ = boxText1;
       infobox.position_ = mkLatLng1;
       infobox.open(map);
    });

      //so far everything ok. When the user clicks the marker the infobox pops up - but.....

    google.maps.event.addDomListener(boxText1,'click',function(){ alert('clicked!') });//doesn't work

Я пробовал множество других вариантов, но все они сделаны в темноте. Каков наилучший способ прослушивания события клика в информационном блоке?

Спасибо

1 Ответ

11 голосов
/ 28 июня 2011

Проблема решена. В опциях инфобокса вы должны убедиться, что у вас есть

pane: "floatPane" 

и НЕ

pane: "mapPane"

как у меня было. Работает нормально сейчас.

Интересно, что в Документах Google написано

Set the pane to "mapPane" if the InfoBox is being used as a map label.

Чего они не говорят, так это того, что вы не можете использовать эту опцию, если хотите, чтобы метка карты была кликабельной.

...