Google Maps API V3: Como remover um ouvinte de evento?
-
20-09-2019 - |
Pergunta
Como faço para remover o ouvinte de eventos 'Bounds_Changed' em Google Maps API V3?
google.maps.event.removeListener(_???_);
Solução
Normalmente, você pode encontrar respostas para essas perguntas no Google Maps API Documentation.
Como Andrew disse, Addlistener retorna uma alça que você pode usar posteriormente para remover o ouvinte. Isso ocorre porque um único evento pode ter muitos ouvintes e, para removê -los, você deve salvar uma referência a cada um dos ouvintes anexados.
Há também uma função que remove todos os ouvintes ao mesmo tempo:
clearListeners(instance:Object, eventName:string);
//In your case:
google.maps.event.clearListeners(map, 'bounds_changed');
Aqui está a referência da API do Google Maps onde você pode ler sobre isso.
Outras dicas
AddListener retorna uma alça que você pode passar posteriormente para o Removelistener:
var listenerHandle = google.maps.event.addListener(map, 'bounds_changed', function() {
google.maps.event.removeListener(listenerHandle);
Isso parece funcionar na versão atual.
var listenerHandle = google.maps.event.addListener(map, 'bounds_changed', function() {
// Handler code.
});
listenerHandle.remove();
Se você não pudesse segurar o objeto do ouvinte de alguma forma, poderá remover os ouvintes diretamente google.maps.event.clearListeners(objectListened, 'event');
Ex: google.maps.event.clearListeners(map, 'bounds_changed');