Javascript-Ereignishandler mit Parametern

Ich möchte einen eventHandler erstellen, der das Ereignis und einige Parameter übergibt. Das Problem ist, dass die Funktion das Element nicht bekommt. Hier ist ein Beispiel:

<code>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
});
</code>

Das 'elem' muss außerhalb der anonymen Funktion definiert werden. Wie kann ich das übergebene Element in der anonymen Funktion verwenden? Gibt es eine Möglichkeit, dies zu tun?

Und was ist mit addEventListener? Ich scheine überhaupt nicht in der Lage zu sein, das Ereignis durch einen addEventListener zu leiten, oder?

Aktualisieren

Ich schien das Problem mit "diesem" zu beheben

<code>doClick = function(func){
    var that = this;
    this.element.onclick = function(e){
        func(e, that);
    }
}
</code>

Wo dieses this.element enthält, auf das ich in der Funktion zugreifen kann.

Der addEventListener

Aber ich wundere mich über den addEventListener:

<code>function doClick(elem, func){
    element.addEventListener('click', func(event, elem), false);
}
</code>

Antworten auf die Frage(7)

Ihre Antwort auf die Frage