Come faccio a rimuovere il listener di eventi "bounds_changed" nell'API di Google Maps v3 ?
google.maps.event.removeListener(_???_);
Come faccio a rimuovere il listener di eventi "bounds_changed" nell'API di Google Maps v3 ?
google.maps.event.removeListener(_???_);
Risposte:
Di solito puoi trovare le risposte a queste domande nella documentazione dell'API di Google Maps.
Come ha detto Andrew, addListener restituisce un handle che puoi utilizzare in seguito per rimuovere il listener. Questo perché un singolo evento può avere molti listener e per rimuoverli è necessario salvare un riferimento a ciascuno dei listener allegati.
C'è anche una funzione che rimuove tutti gli ascoltatori contemporaneamente:
clearListeners(instance:Object, eventName:string);
//In your case:
google.maps.event.clearListeners(map, 'bounds_changed');
Ecco il riferimento all'API di Google Maps dove puoi leggere a riguardo.
google.maps.event.clearListeners(map, 'idle')
lavori. Ma map.clearListeners('idle')
non lo fa. Questa sintassi funziona per tutto il resto nell'API ( .addListener
, ecc.). Dispari.
addListener restituisce un handle che puoi successivamente passare a removeListener:
var listenerHandle = google.maps.event.addListener(map, 'bounds_changed', function() {
google.maps.event.removeListener(listenerHandle);
Questo sembra funzionare nella versione corrente.
var listenerHandle = google.maps.event.addListener(map, 'bounds_changed', function() {
// Handler code.
});
listenerHandle.remove();
listenerHandler.remove()
funziona anche per i listener del livello dati, cioè google.maps.data.addListener
, poiché NON è google.maps.data.removeListener
definito alcun metodo.
Se non puoi tenere in qualche modo l'oggetto listener, puoi rimuovere gli ascoltatori direttamente come file google.maps.event.clearListeners(objectListened, 'event');
Ex: google.maps.event.clearListeners(map, 'bounds_changed');