Faltblatt: kein Feuer, klicken Sie auf Ereignis-Funktion auf doubleclick
Ich habe eine Frage bezüglich der Klicks auf einer Karte in der Broschüre. Wenn ich auf die Karte will ich um eine Markierung zu setzen gibt, aber wenn ein Doppelklick auf die Karte, ich will einfach nur, um zu vergrößern, ohne setzen einer Markierung. Also ich habe das mit folgendem code:
var map = L.map(attrs.id, {
center: [scope.lat, scope.lng],
zoom: 14
});
var marker = L.marker([scope.lat, scope.lng],{draggable: true});
map.on('click', function(event){
marker.setLatLng(event.latlng);
marker.addTo(map);
});
Das problem ist jetzt, wenn ich doublclick auf der Karte das click-Ereignis wird auch ausgelöst, und ich möchte zu entfernen, das Verhalten. Wie kann ich das erreichen?
Dank
Magda
- bitte Lesen Sie MDN-Veranstaltungshinweis, vielleicht finden Sie hier das Ereignis, das Sie nach 😉
- Ich habe noch nie gearbeitet, mit Prospekt, also weiß ich nicht ob es unterstützt dies bereits, aber die Technik, die Sie vielleicht suchen, für die ist entprellung. Im wesentlichen Verzögerung der Platzierung der marker, und wenn ein weiteres click-Ereignis geschieht während dieser Zeit, Sie zu vergrößern.
- Vielen Dank für deine Antwort - ich habe eine Verzögerung, wie Sie vorgeschlagen.
- Bitte veröffentlichen Sie keine Lösung als eine Bearbeiten, um die Frage. Sie können post eine Antwort, um Ihre eigenen Fragen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
So, ich fand einen Weg, das zu tun, ich bin noch nicht sicher, ob es einen besseren Weg, es zu tun.
Hatte das gleiche problem, 2 x unerwünschten
click
events feuern, wenn Zuhören fürdblclick
.Hinweis: ich wollte Einzel-und Doppel-klickt auf das gleiche element, um verschiedene Aktionen auszuführen.
Angepasst ich dieses Konzept auf meine leaflet-Karte, die ist nicht kugelsicher, aber beseitigt 99% der Konflikte:
Credit: CSS-Tricks
Code-Stift-Beispiel
Dies ist immer noch ein Problem auf den letzten (Merkblatt 1.4) Versionen.
Alternative Ansatz, den ich verwendet:
setTimeout
undclearTimeout
Beachten Sie, dass die
200
ms Verzögerung geprüft werden müssen. Auf meine Umwelt mit einem Wert wie100
war nicht genug, wie das doubleclick-Ereignis wird ausgelöst, mit einer Verzögerung.