Wie kann ich einen Ereignis-Listener mithilfe einer Funktion mit Parametern hinzufügen und entfernen?

Sorry, wenn dies ist eine häufige Frage, aber ich konnte nicht finden alle Antworten, schien relevant über die Suche.

Wenn ich, fügen Sie einen Ereignis-listener wie diese:

window.addEventListener('scroll', function() { check_pos(box); }, false);

es scheint nicht zu arbeiten, um zu versuchen, es zu entfernen, um später, wie diese:

window.removeEventListener('scroll', function() { check_pos(box); }, false);

Ich nehme an, dies ist, weil die addEventListener und removeEventListener Methoden ein Verweis auf die gleiche Funktion, während Sie habe ich Sie mit anonymen Funktionen, die zwar identisch im code sind nicht wirklich das gleiche.

Wie kann ich mein code bekomme den Anruf zu removeEventListener zu arbeiten? Die "box" - argument bezieht sich auf den Namen eines <iframe> dass ich bin-tracking auf dem Bildschirm; das heißt, ich möchte in der Lage sein, zu abonnieren, um die scroll Fall einmal für jede <iframe>die ich habe (die Anzahl variiert), und einmal die check_pos() Funktion misst eine bestimmte position, es wird eine andere Funktion aufrufen und auch entfernen Sie den Ereignis-listener, um Systemressourcen freizugeben.

Meine Vermutung ist, dass die Lösung umfasst einen Verschluss und/oder die Benennung der anonymen Funktion, aber ich bin mir nicht ganz sicher, wie das aussieht, und würden uns freuen, ein konkretes Beispiel.

Hoffe das macht Sinn. Vielen Dank für jede Hilfe!!!

InformationsquelleAutor der Frage Bungle | 2010-06-07

Schreibe einen Kommentar