Ereignis-Listener mit Parametern hinzufügen und entfernen
Ich schreibe eineVanille JavaScript Wenn dieses Tool aktiviert ist, werden jedem der übergebenen Elemente Ereignis-Listener hinzugefügt.
Ich würde gerne so etwas machen:
var do_something = function (obj) {
// do something
};
for (var i = 0; i < arr.length; i++) {
arr[i].el.addEventListener('click', do_something(arr[i]));
}
Leider funktioniert das nicht, denn soweit ich weiß,Beim Hinzufügen eines Ereignis-Listeners können Parameter nur an anonyme Funktionen übergeben werden:
for (var i = 0; i < arr.length; i++) {
arr[i].el.addEventListener('click', function (arr[i]) {
// do something
});
}
Das Problem ist, dass ich in der Lage sein muss, den Ereignis-Listener zu entfernen, wenn das Tool deaktiviert ist, aber ich denke nicht, dass es möglich ist, Ereignis-Listener mit anonymen Funktionen zu entfernen.
for (var i = 0; i < arr.length; i++) {
arr[i].el.removeEventListener('click', do_something);
}
Ich weiß, dass ich mein Problem mit jQuery leicht lösen kann, aber ich versuche, Abhängigkeiten zu minimieren. jQuery muss das irgendwie umgehen, aber der Code ist ein bisschen wie ein Dschungel!