Wie entferne ich den Ereignis-Listener "bounds_changed" in Google Maps API v3 ?
google.maps.event.removeListener(_???_);
Wie entferne ich den Ereignis-Listener "bounds_changed" in Google Maps API v3 ?
google.maps.event.removeListener(_???_);
Antworten:
Normalerweise finden Sie Antworten auf solche Fragen in der Dokumentation zur Google Maps-API.
Wie Andrew sagte, gibt addListener ein Handle zurück, mit dem Sie den Listener später entfernen können. Dies liegt daran, dass ein einzelnes Ereignis viele Listener haben kann. Um diese zu entfernen, müssen Sie einen Verweis auf jeden angehängten Listener speichern.
Es gibt auch eine Funktion, mit der alle Listener gleichzeitig entfernt werden:
clearListeners(instance:Object, eventName:string);
//In your case:
google.maps.event.clearListeners(map, 'bounds_changed');
Hier ist die Google Maps API-Referenz, in der Sie darüber lesen können.
google.maps.event.clearListeners(map, 'idle')
funktioniert. Aber map.clearListeners('idle')
nicht. Diese Syntax funktioniert für alles andere in der API ( .addListener
usw.). Seltsam.
addListener gibt ein Handle zurück, das Sie später an removeListener übergeben können:
var listenerHandle = google.maps.event.addListener(map, 'bounds_changed', function() {
google.maps.event.removeListener(listenerHandle);
Dies scheint in der aktuellen Version zu funktionieren.
var listenerHandle = google.maps.event.addListener(map, 'bounds_changed', function() {
// Handler code.
});
listenerHandle.remove();
listenerHandler.remove()
für Listener auf Datenebene funktioniert - dh, google.maps.data.addListener
da KEINE google.maps.data.removeListener
Methode definiert ist.
Wenn Sie das Listener-Objekt nicht irgendwie halten könnten, könnten Sie Listener direkt als entfernen google.maps.event.clearListeners(objectListened, 'event');
Ex: google.maps.event.clearListeners(map, 'bounds_changed');