Ich möchte einen EventHandler, der das Ereignis und einige Parameter übergibt. Das Problem ist, dass die Funktion das Element nicht erhält. Hier ein Beispiel:Javascript Event-Handler mit Parametern
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
});
Der 'elem' muss außerhalb der anonymen Funktion definiert werden. Wie kann ich das übergebene Element innerhalb der anonymen Funktion verwenden? Gibt es eine Möglichkeit, dies zu tun?
Und was ist mit addEventListener? Ich bin anscheinend nicht in der Lage, das Ereignis durch einen addEventListener überhaupt zu übertragen, oder?
aktualisiert
Ich schien das Problem mit 'this'
doClick = function(func){
var that = this;
this.element.onclick = function(e){
func(e, that);
}
}
Wo dies enthält this.element zu beheben, dass ich in der Funktion zugreifen kann.
Die addEventListener
Aber ich frage mich, über die addEventListener:
function doClick(elem, func){
element.addEventListener('click', func(event, elem), false);
}
Sie haben Elem, Elemente, Element in Ihrer Frage beteiligt. Kannst du weniger verwirrend sein? – mihai
Es tut mir leid, ich habe versucht, ein Beispiel für meine Situation zu machen, aber das ist nicht gut gelaufen, ich habe den Code aktualisiert. – sebas2day
Würden Sie nach 'e.target' /' e.currentTarget' suchen? – Rolf