Я хочу создать обработчик событий, который передает событие и некоторые параметры. Проблема в том, что функция не получает элемент. Вот пример:
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
});
Элемент 'elem' должен быть определен вне анонимной функции. Как я могу получить переданный элемент для использования в анонимной функции? Есть ли способ сделать это?
А как насчет addEventListener? Кажется, я вообще не могу передать событие через addEventListener, не так ли?
Обновление
Кажется, я решил проблему с 'this'
doClick = function(func){
var that = this;
this.element.onclick = function(e){
func(e, that);
}
}
Где this содержит this.element, к которому я могу получить доступ в функции.
AddEventListener
Но меня интересует addEventListener:
function doClick(elem, func){
element.addEventListener('click', func(event, elem), false);
}