Ich möchte einen eventHandler erstellen, der das Ereignis und einige Parameter übergibt. Das Problem ist, dass die Funktion das Element nicht erhält. Hier ist ein Beispiel:
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
});
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 das Ereignis überhaupt nicht über einen addEventListener weiterleiten zu können, oder?
Aktualisieren
Ich schien das Problem mit "diesem" zu beheben.
doClick = function(func){
var that = this;
this.element.onclick = function(e){
func(e, that);
}
}
Wo dies this.element enthält, auf das ich in der Funktion zugreifen kann.
Der addEventListener
Aber ich wundere mich über den addEventListener:
function doClick(elem, func){
element.addEventListener('click', func(event, elem), false);
}