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>