Ich habe eine Google Map mit Markern. Jede Markierung zeigt nach dem Anklicken ein Infofenster an. Im Infofenster befindet sich eine Schaltfläche zum Hinzufügen von Daten zu einer Warteschlange. Beim ersten Klick auf die Schaltfläche "Hinzufügen zur Warteschlange" wird einmal ausgelöst, dann auf eine zweite Schaltfläche, die zweimal ausgelöst wird, auf eine dritte Schaltfläche und dann dreimal.Google Maps Popover klicken Ereignis wird mehrmals ausgelöst
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
$('.show-compare').popover('destroy');
infowindow.setContent('<div class="add-wrapper"><div class="show-compare" data-toggle="popover" data-placement="top" data-content="Add to compare basket">CLICK ME</div></div>);
infowindow.setOptions({maxWidth: 200});
infowindow.open(map, marker);
$('body').on("click", '.show-compare', function(e) {
e.preventDefault();
alert();//this fires x times, only should fire once per click!!
}
}) (marker, i));
}
HILFE! Vielen Dank :)
Nö Das funktionierte auf Body-Tag nur einem Klick können Sie sich registrieren ausrücken, noch mehrmals feuern. – ryan
Ich denke, Loc bellow könnte Recht haben. Verschieben Sie den Klick-Listener außerhalb der addListener-Funktion. Ich würde es auch ein bisschen schöner machen. '$ (document) .ready ($ ('. show-compare'). click (function (e) {e.preventDefault(); alert()})) .. und verschiebe das einfach außerhalb von allem –
Ich kann mich nicht bewegen es draußen, weil ich Marker-Daten innerhalb des Click-Ereignisses verwende. Ich brauche Zugang zu dem Marker, auf den ich geklickt habe – ryan