Duplicar posible:
Removing an anonymous event listenerJavascript: la eliminación de un detector de eventos anónimo
tengo la siguiente función de navegador de la Cruz añadir un detector de eventos:
_SU3.addEventListener = function(elem, eventName, fn) {
if(elem.addEventListener) {
elem.addEventListener(eventName, fn, false);
} else if (elem.attachEvent) {
elem.attachEvent('on'+eventName, fn);
}
};
I' m agregando el oyente de esta manera:
_SU3.addEventListener(_show, "click", function(event) {
_SU3.getChildren(_show, uri, element);
});
¿Qué está todo bien? Sin embargo, quiero eliminar el oyente después de haber sido llamado una vez. Es decir algo como:
_SU3.getChildren = function(_show, url, element) {
... blah...
_SU3.removeEventListener(_show, 'click', ANON_FUNCTION);
};
Pero, por supuesto, la función del oyente es anónima, por lo que no hay ningún nombre de función para hacer referencia.
¿Cómo puedo eliminar el oyente?
Gracias
Tienes que mantener una referencia en alguna parte. O explícitamente pasando una referencia a tu función, o implícitamente dentro de tu función. –