Я хочу зробити eventHandler, який передає подію та деякі параметри. Проблема в тому, що функція не отримує елемент. Ось приклад:
doClick = function(func){
var elem = .. // the element where it is all about
elem.onclick = function(e){
func(e, elem);
}
}
doClick(function(e, element){
// do stuff with element and the event
});
Елем повинен бути визначений поза анонімною функцією. Як я можу отримати переданий елемент для використання в анонімній функції? Чи є спосіб зробити це?
А як щодо addEventListener? Здається, я взагалі не можу передати подію через addEventListener, чи не так?
Оновлення
Здавалося, я вирішив проблему із "цим"
doClick = function(func){
var that = this;
this.element.onclick = function(e){
func(e, that);
}
}
Де це містить this.element, до якого я можу отримати доступ у функції.
AddEventListener
Але мені цікаво про addEventListener:
function doClick(elem, func){
element.addEventListener('click', func(event, elem), false);
}