2011-06-27 10 views
5

Tengo un Google Map (v3) con 20 marcadores. Tengo una sola instancia de InfoBox que se llena con un div que incluye el texto para llenar el cuadro como innerHTML.Google Maps v3 InfoBox Añadir Oyente del evento

Quiero poder hacer clic en el cuadro de información y navegar hacia una página diferente, pero no puedo obtener el cuadro de información, o el div dentro de él para responder a un evento de clic.

He intentado agregar un detector de eventos, y he intentado agregar un domListener, pero tampoco puedo ponerme a trabajar.

Éstos son algunos fragmentos de mi código

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

He probado una variedad de otras opciones, pero son todos los disparos en la oscuridad. ¿Cuál es la mejor manera de escuchar un evento de clic en un cuadro de información?

Gracias

+0

¿La pequeña cruz cierra la ventana de información? – ianbarker

+0

El texto de su infobox puede contener html ¿verdad? Entonces puedes hacer un div en él, y escuchar los clics en ese div. –

+0

No hay una pequeña cruz. ¿Estás pensando en la ventana de información? –

Respuesta

11

Problema resuelto. En las opciones listadas usted tiene que asegurarse de que tiene

pane: "floatPane" 

y NO

pane: "mapPane" 

como lo tenía. Funciona bien ahora

Curiosamente los Documentos de Google dicen

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

Lo que no dicen es que no se puede usar esta opción si desea que la etiqueta de mapa para hacer clic.

Cuestiones relacionadas