API Карт Google v3:Как удалить прослушиватель событий?
-
20-09-2019 - |
Вопрос
Как удалить прослушиватель событий «bounds_changed» в API Карт Google v3?
google.maps.event.removeListener(_???_);
Решение
Обычно ответы на такие вопросы можно найти в документации Google Maps API.
Как сказал Эндрю, addListener возвращает дескриптор, который вы можете использовать позже для удаления прослушивателя.Это связано с тем, что у одного события может быть много прослушивателей, и для их удаления необходимо сохранить ссылку на каждого из подключенных прослушивателей.
Также есть функция, которая удаляет всех слушателей одновременно:
clearListeners(instance:Object, eventName:string);
//In your case:
google.maps.event.clearListeners(map, 'bounds_changed');
Вот ссылка на API Карт Google. где можно об этом прочитать.
Другие советы
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();
Если вы не можете каким-то образом удержать объект прослушивателя, вы можете удалить прослушиватель(и) напрямую, как google.maps.event.clearListeners(objectListened, 'event');
Бывший: google.maps.event.clearListeners(map, 'bounds_changed');