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ą!

questionAnswers(3)

yourAnswerToTheQuestion