Pregunta

Con Google Map v2, me gustaría ser capaz de desencadenar una función cuando se hace clic en un texto en la ventana de información de un GMarker.

$(".foo").click(myFunction);

...

marker.openInfoWindowHtml("<span class=\"foo\">myText</span>");

no funciona. ¿Por qué el evento no está atrapado dentro de la ventana de información?

¿Fue útil?

Solución

Si la llamada unión evento se llama antes de la llamada a openInfoWindowHtml ya que es en su ejemplo, el lapso no estaba en el DOM, mientras que la primera llamada buscaba elementos con la clase "foo", por lo que se adjuntó ningún controlador .

Usted puede mover ese controlador de eventos que se llamará después openInfoWindowHtml, o utilizar el enlace de eventos "en vivo" para que jQuery supervisará el DOM para los nuevos elementos con el selector dado.

$(".foo").live('click', myFunction);

Otros consejos

No pude conseguir que funcione como Kevin Gorski explicado ...

con jQuery 1.9.1 y la API de mapas v = 3.exp las siguientes obras:

infowindow.setContent('<a href="#" id="test">test</a>');
google.maps.event.addDomListener(infowindow, 'domready', function() {
    $('#test').click(function() {
        alert("Hello World");
    });
});

Por lo que yo sé, GMaps inyecta contenido en el InfoWindow mediante programación, por lo que cualquier controlador de eventos consolidados sobre los elementos inyectados no va a disparar a menos que utilice delegación de eventos:

$(".foo").live("click", myFunction);

Vea la live controladores de eventos.

Prueba esto:

google.maps.event.addListener(infowindow,"**domready**",function() {
    var Cancel = document.getElementById("Cancel");
    var Ok = document.getElementById("Ok");

    google.maps.event.addDomListener(Cancel,"click",function() {
        infowindow.close();
    });

    google.maps.event.addDomListener(Ok,"click",function() {
        infowindow.close();
        console.log(position);
        codeLatLng(position);
    });
});

solución simple y el trabajo para mí. utilizar el evento onclick en lapso.

<span class=\"foo\" onclick="test()">myText</span>

function test(){
alert('test OK');
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top