Обработчик событий Javascript с параметрами

Я хочу создать обработчик событий, который передает событие и некоторые параметры. Проблема в том, что функция не получает элемент. Вот пример:

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);
}
74
задан sebas2day 3 April 2012 в 20:35
поделиться