Chcę utworzyć eventHandler, który przekazuje zdarzenie i niektóre parametry. Problem polega na tym, że funkcja nie otrzymuje elementu. Oto przykład:Obsługa zdarzeń JavaScript z parametrami
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
});
"elem" musi być zdefiniowany poza anonimową funkcją. Jak mogę uzyskać przekazany element do użycia w funkcji anonimowej? Czy jest jakiś sposób na zrobienie tego?
A co z addEventListener? Wydaje mi się, że nie jestem w stanie przekazać zdarzenia przez addEventListener w ogóle ja?
Aktualizacja
wydawało mi się rozwiązać problem z 'tego'
doClick = function(func){
var that = this;
this.element.onclick = function(e){
func(e, that);
}
}
Gdzie ten zawiera this.element, że można uzyskać dostęp do funkcji.
addEventListener
Ale zastanawiam addEventListener:
function doClick(elem, func){
element.addEventListener('click', func(event, elem), false);
}
Masz elem, elementy, element zaangażowany w swoim pytaniu. Czy możesz być mniej kłopotliwy? – mihai
Przykro mi, próbowałem zrobić przykład mojej sytuacji, ale to nie poszło dobrze, zaktualizowałem kod. – sebas2day
Szukasz "e.target' /' e.currentTarget'? – Rolf