Chcę utworzyć eventHandler, który przekazuje zdarzenie i niektóre parametry. Problem w tym, że funkcja nie pobiera elementu. Oto przykład:
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
});
Element „elem” musi być zdefiniowany poza funkcją anonimową. Jak mogę uzyskać przekazany element do użycia w funkcji anonimowej? Czy jest na to sposób?
A co z addEventListener? Wydaje się, że w ogóle nie mogę przekazać zdarzenia przez addEventListener, prawda?
Aktualizacja
Wydawało się, że rozwiązałem problem z „tym”
doClick = function(func){
var that = this;
this.element.onclick = function(e){
func(e, that);
}
}
Gdzie ten element zawiera this.element, do którego mam dostęp w funkcji.
AddEventListener
Ale zastanawiam się nad addEventListener:
function doClick(elem, func){
element.addEventListener('click', func(event, elem), false);
}