2011-06-27 13 views
5

Mam mapę Google (v3) z 20 znacznikami. Mam jedną instancję InfoBox, która jest zapełniana przez element div, który zawiera tekst do wypełnienia w polu jako innerHTML.Google Maps v3 InfoBox Dodaj odbiorcę zdarzeń

Chcę móc kliknąć infobox i przejść do innej strony, ale nie mogę uzyskać infobox lub div wewnątrz, aby odpowiedzieć na zdarzenie click.

Próbowałem dodać detektor zdarzeń i próbowałem dodać domListener, ale nie mogę dostać się do pracy.

Oto kilka fragmentów z mojego kodu

//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 

Próbowałem wiele innych opcji, ale są wszystkie zdjęcia w ciemności. Jaki jest najlepszy sposób na odsłuchanie zdarzenia kliknięcia na infoboxie?

Dzięki

+0

Czy mały krzyż zamyka infobox? – ianbarker

+0

Twój tekst infobox może zawierać html w prawo? Więc możesz zrobić div w tym i słuchać kliknięć tego div. –

+0

Nie ma małego krzyża. Czy myślisz o oknie informacyjnym? –

Odpowiedz

11

Problem rozwiązany. W opcjach Infobox trzeba upewnić się, że masz

pane: "floatPane" 

i nie

pane: "mapPane" 

jak miałem go. Działa teraz dobrze.

ciekawe Dokumentów Google powiedzieć

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

Co nie znaczy to, że nie można korzystać z tej opcji, jeśli chcesz etykieta mapa być klikalne.

Powiązane problemy