2010-07-20 16 views
5

problema de manera sencilla (explicar) esta vez:Retire oyentes marcadores

tengo una serie de marcadores que dotar de EventListeners así:

for (i in markersArray) { 
google.maps.event.addListener(markersArray[i], 'click', function() {   
    //stuff it does 
    google.maps.event.removeListener(?????)  //remove self... but HOW?! 
});} 

como he mencionado en el comentario, simplemente quiero el oyente que se eliminará una vez que se haga clic.

problema es que no sé cuál es el mango del oyente.

+0

no me di cuenta que quitó la etiqueta 'google-maps', justo antes de que re-marcarlo como tal. Me quedaría, porque así es como todas las preguntas de la API de Google Maps están etiquetadas normalmente. –

Respuesta

4

Usted puede utilizar el "addListenerOnce". Entonces ni siquiera tiene que molestarse en eliminar al oyente.

addListenerOnce (ejemplo: objetos, eventName: cuerda, manejador: Función)

Como event.AddListener, pero el manejador remueve a sí mismo después de manipular el primer evento .

+0

buenísimo, justo lo que necesitaba :) – Stjerneklar

+0

Brilliant! ¡Gracias! –

0

Estoy seguro de que en este caso usaría una matriz de oyentes (o un objeto que encapsulara marcadores Y oyentes). google.maps.event devuelve un objeto de evento. Check the documentation.

var markersListeners = []; 

for (i in markersArray) 
{ 
    markersListeners[i] = google.maps.event.addListener(markersArray[i], 'click', function() 
    { 
     //stuff it does 
     google.maps.event.removeListener(markersListeners[i]); 
    }); 
} 

responsabilidad: No he comprobado la sintaxis. También puede probar removeListener (markersArray [i]) como lo he visto hacerlo, pero no sé si funciona.

+0

removeListener (markersArray [i]) no funcionó para mí cuando intenté ayer, me seguía dando errores de API – Stjerneklar