Mögliche Duplizieren:
Removing an anonymous event listenerJavascript: Entfernen eines anonymen Ereignis-Listener
Ich habe folgende Cross-Browser-Funktion einen Ereignis-Listener hinzuzufügen:
_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 Hinzufügen des Zuhörers wie folgt:
_SU3.addEventListener(_show, "click", function(event) {
_SU3.getChildren(_show, uri, element);
});
Was ist alles in Ordnung. Ich möchte jedoch den Listener entfernen, nachdem er einmal aufgerufen wurde. Das heißt so etwas wie:
_SU3.getChildren = function(_show, url, element) {
... blah...
_SU3.removeEventListener(_show, 'click', ANON_FUNCTION);
};
Aber natürlich ist die Listener-Funktion anonym, so gibt es zu Referenz keine Funktion Namen.
Wie kann ich den Listener entfernen?
Danke
Sie müssen irgendwo eine Referenz aufbewahren. Entweder explizit durch Übergabe eines Verweises auf Ihre Funktion oder implizit innerhalb Ihrer Funktion. –