10
votes

Cliquez sur l'événement dans la carte de Google InfoWindow non capturé

avec Google Map V2, j'aimerais pouvoir déclencher une fonction lorsque vous cliquez sur un texte dans l'info-annonce d'un gammeur.

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

...

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


0 commentaires

6 Réponses :


3
votes

Autant que je sache, GMAPS injecte de contenu dans l'InfoWindow par programme, de sorte que tous les gestionnaires d'événements liés sur les éléments injectés ne tiraient pas à moins que vous utilisiez la délégation d'événements:

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


0 commentaires

10
votes

Si l'appel de liaison de l'événement est appelé avant l'appel à OpenInfowindowhtml tel qu'il est dans votre exemple, la SPAN n'était pas dans le DOM pendant que le premier appel cherchait des éléments avec la classe "foo", donc aucun gestionnaire n'a été attaché. .

Vous pouvez soit déplacer ce gestionnaire d'événements à appeler après OpenInfowindowhTML, soit utiliser une liaison d'événement "en direct" de sorte que JQuery surveille le DOM pour tout nouveau élément avec le sélecteur donné. P>

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


1 commentaires

Merci Kevin, cela fonctionne. Je devais mettre un événement de clic sur une liste interne de jquery mobile et la page interne semble charger avant que l'événement incendie ?? juste quelque chose à prendre conscience de.



0
votes

Essayez ceci:

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);
    });
});


0 commentaires

11
votes

Je ne pouvais pas le faire fonctionner comme Kevin Gorski expliqué ...

avec jQuery 1.9.1 et cartes API V = 3.Exp Les travaux suivants: P>

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


0 commentaires

0
votes

Solution simple et travailler pour moi. Utilisez ONCLICK Event en SPAN. xxx


0 commentaires

0
votes

les solutions les plus simples et complètement décrives.

L'info-info-info-info-info-info-info-info-infoWindow ne doit contenir qu'avec un espace réservé avec un identifiant unique : xxx

et à l'intérieur du MapContainer , vous définissez un rappel Oninfowindowopen, qui insère un seul composant / conteneur avec l'événement OnClick et le rendit à un espace réservé div : xxx


Voici un exemple de travail:

" https://codesandbox.io/s/k0xrxok983 "rel =" NOFOollow NOREFERRER "> https://codesandbox.io/s/k0xrxok983

Un autre exemple complet Carte , marqueur et InfoWindow :

https://codesandbox.io/s/24m1yrr4mj

Si vous avez des questions, s'il vous plaît commenter.


0 commentaires