Como faço para remover o ouvinte de eventos 'bounds_changed' na API do Google Maps v3 ?
google.maps.event.removeListener(_???_);
Como faço para remover o ouvinte de eventos 'bounds_changed' na API do Google Maps v3 ?
google.maps.event.removeListener(_???_);
Respostas:
Normalmente, você pode encontrar respostas para essas perguntas na documentação da API do Google Maps.
Como disse Andrew, addListener retorna um identificador que você pode usar posteriormente para remover o ouvinte. Isso porque um único evento pode ter muitos ouvintes e para removê-los você deve salvar uma referência para cada um dos ouvintes anexados.
Também existe 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.
google.maps.event.clearListeners(map, 'idle')
trabalho. Mas map.clearListeners('idle')
não. Essa sintaxe funciona para tudo o mais na API ( .addListener
, etc). Ímpar.
addListener retorna um identificador que você pode passar posteriormente para 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();
listenerHandler.remove()
funciona para ouvintes da camada de dados - ou seja, google.maps.data.addListener
uma vez que NÃO há nenhum google.maps.data.removeListener
método definido.
Se você não pudesse segurar o objeto ouvinte de alguma forma, você poderia remover ouvinte (s) diretamente como google.maps.event.clearListeners(objectListened, 'event');
Ex: google.maps.event.clearListeners(map, 'bounds_changed');