Jak usunąć odbiornik zdarzeń „bounds_changed” w Google Maps API v3 ?
google.maps.event.removeListener(_???_);
Jak usunąć odbiornik zdarzeń „bounds_changed” w Google Maps API v3 ?
google.maps.event.removeListener(_???_);
Odpowiedzi:
Zwykle odpowiedzi na takie pytania można znaleźć w dokumentacji interfejsu API Map Google.
Jak powiedział Andrew, addListener zwraca uchwyt, którego można później użyć do usunięcia detektora. Dzieje się tak, ponieważ jedno zdarzenie może mieć wielu detektorów i aby je usunąć, należy zapisać odniesienie do każdego z dołączonych detektorów.
Istnieje również funkcja, która usuwa wszystkich słuchaczy w tym samym czasie:
clearListeners(instance:Object, eventName:string);
//In your case:
google.maps.event.clearListeners(map, 'bounds_changed');
Oto dokumentacja interfejsu API Map Google, w której możesz o tym przeczytać.
google.maps.event.clearListeners(map, 'idle')
Pracuje. Ale map.clearListeners('idle')
tak nie jest. Ta składnia działa dla wszystkich innych elementów interfejsu API ( .addListener
itp.). Dziwny.
addListener zwraca uchwyt, który możesz później przekazać do removeListener:
var listenerHandle = google.maps.event.addListener(map, 'bounds_changed', function() {
google.maps.event.removeListener(listenerHandle);
Wydaje się, że to działa w obecnej wersji.
var listenerHandle = google.maps.event.addListener(map, 'bounds_changed', function() {
// Handler code.
});
listenerHandle.remove();
listenerHandler.remove()
działa również dla słuchaczy warstwy danych - tj. google.maps.data.addListener
- ponieważ NIE ma google.maps.data.removeListener
zdefiniowanej metody.
Jeśli nie możesz w jakiś sposób utrzymać obiektu detektora, możesz usunąć nasłuchiwanie bezpośrednio jako google.maps.event.clearListeners(objectListened, 'event');
Dawny: google.maps.event.clearListeners(map, 'bounds_changed');