Як видалити прослуховувач подій "bounds_changed" в API Карт Google v3 ?
google.maps.event.removeListener(_???_);
Як видалити прослуховувач подій "bounds_changed" в API Карт Google v3 ?
google.maps.event.removeListener(_???_);
Відповіді:
Зазвичай ви можете знайти відповіді на такі запитання в документації API Google Maps.
Як сказав Ендрю, addListener повертає дескриптор, який ви можете використовувати пізніше для видалення слухача. Це тому, що в одній події може бути багато слухачів, і для їх видалення потрібно зберегти посилання на кожного із приєднаних слухачів.
Також є функція, яка видаляє всіх слухачів одночасно:
clearListeners(instance:Object, eventName:string);
//In your case:
google.maps.event.clearListeners(map, 'bounds_changed');
Ось посилання на API Карт Google, де ви можете про це прочитати.
google.maps.event.clearListeners(map, 'idle')
робіт. Але map.clearListeners('idle')
ні. Цей синтаксис працює для всього іншого в API ( .addListener
тощо). Непарні
addListener повертає дескриптор, який ви згодом можете передати removeListener:
var listenerHandle = google.maps.event.addListener(map, 'bounds_changed', function() {
google.maps.event.removeListener(listenerHandle);
Здається, це працює в поточному випуску.
var listenerHandle = google.maps.event.addListener(map, 'bounds_changed', function() {
// Handler code.
});
listenerHandle.remove();
listenerHandler.remove()
працює і для слухачів рівня даних - тобто google.maps.data.addListener
- оскільки google.maps.data.removeListener
метод НЕ визначений.
Якщо ви не можете якось утримувати об'єкт слухача, ви можете видалити слухача (слухачів) безпосередньо як google.maps.event.clearListeners(objectListened, 'event');
Приклад: google.maps.event.clearListeners(map, 'bounds_changed');