¿Cómo elimino el detector de eventos 'limits_changed' en la API de Google Maps v3 ?
google.maps.event.removeListener(_???_);
¿Cómo elimino el detector de eventos 'limits_changed' en la API de Google Maps v3 ?
google.maps.event.removeListener(_???_);
Respuestas:
Por lo general, puede encontrar respuestas a estas preguntas en la documentación de la API de Google Maps.
Como dijo Andrew, addListener devuelve un identificador que puede usar más tarde para eliminar el oyente. Esto se debe a que un solo evento puede tener muchos oyentes y, para eliminarlos, debe guardar una referencia a cada uno de los oyentes adjuntos.
También hay una función que elimina a todos los oyentes al mismo tiempo:
clearListeners(instance:Object, eventName:string);
//In your case:
google.maps.event.clearListeners(map, 'bounds_changed');
Aquí está la referencia de la API de Google Maps donde puede leer sobre ella.
google.maps.event.clearListeners(map, 'idle')
trabajos. Pero map.clearListeners('idle')
no lo hace. Esa sintaxis funciona para todo lo demás en la API ( .addListener
, etc.). Impar.
addListener devuelve un identificador que luego puede pasar a removeListener:
var listenerHandle = google.maps.event.addListener(map, 'bounds_changed', function() {
google.maps.event.removeListener(listenerHandle);
Esto parece funcionar en la versión actual.
var listenerHandle = google.maps.event.addListener(map, 'bounds_changed', function() {
// Handler code.
});
listenerHandle.remove();
listenerHandler.remove()
funciona para los oyentes de la capa de datos, es decir google.maps.data.addListener
, ya que NO hay ningún google.maps.data.removeListener
método definido.
Si no pudiera mantener el objeto de escucha de alguna manera, podría eliminar los oyentes directamente como google.maps.event.clearListeners(objectListened, 'event');
Ex: google.maps.event.clearListeners(map, 'bounds_changed');