Dodawanie i usuwanie detektorów zdarzeń z parametrami
Piszęwaniliowy JavaScript narzędzie, które po włączeniu dodaje detektory zdarzeń do każdego przekazanego elementu.
Chciałbym zrobić coś takiego:
var do_something = function (obj) {
// do something
};
for (var i = 0; i < arr.length; i++) {
arr[i].el.addEventListener('click', do_something(arr[i]));
}
Niestety to nie działa, ponieważ o ile wiem,podczas dodawania detektora zdarzeń, parametry mogą być przekazywane tylko do funkcji anonimowych:
for (var i = 0; i < arr.length; i++) {
arr[i].el.addEventListener('click', function (arr[i]) {
// do something
});
}
Problem polega na tym, że muszę mieć możliwość usunięcia detektora zdarzeń, gdy narzędzie jest wyłączone, ale nie sądzę, aby można było usunąć detektory zdarzeń z funkcjami anonimowymi.
for (var i = 0; i < arr.length; i++) {
arr[i].el.removeEventListener('click', do_something);
}
Wiem, że mogę łatwo użyć jQuery do rozwiązania mojego problemu, ale próbuję zminimalizować zależności. jQuery musi się jakoś obejść, ale kod jest trochę dżunglą!