Voglio creare un eventoHandler che passa l'evento e alcuni parametri. Il problema è che la funzione non ottiene l'elemento. Ecco un esempio:gestore di eventi Javascript con parametri
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
});
L''elem' deve essere definito al di fuori della funzione anonima. Come posso ottenere l'elemento passato da usare all'interno della funzione anonima? C'è un modo per fare questo?
E per quanto riguarda addEventListener? Non riesco a passare l'evento attraverso un addEventListener?
Aggiornamento
mi sembrava di risolvere il problema con 'questo'
doClick = function(func){
var that = this;
this.element.onclick = function(e){
func(e, that);
}
}
Dove questo contiene this.element che posso accedere nella funzione.
addEventListener
ma mi chiedo circa l'addEventListener:
function doClick(elem, func){
element.addEventListener('click', func(event, elem), false);
}
Hai elem, elementi, elemento coinvolto nella sua interrogazione. Puoi essere meno confusionario? – mihai
Mi dispiace, stavo cercando di fare un esempio della mia situazione ma questo non è andato bene, ho aggiornato il codice. – sebas2day
Vuoi cercare 'e.target' /' e.currentTarget'? – Rolf