Voglio creare un eventHandler che passi l'evento e alcuni parametri. Il problema è che la funzione non ottiene l'elemento. Ecco un esempio:
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 '"elemento" deve essere definito al di fuori della funzione anonima. Come posso ottenere l'elemento passato da utilizzare all'interno della funzione anonima? C'è un modo per fare questo?
E per quanto riguarda addEventListener? Non mi sembra di essere in grado di passare l'evento tramite un addEventListener, vero?
Aggiornare
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 questo elemento a cui posso accedere nella funzione.
Il addEventListener
Ma mi chiedo di addEventListener:
function doClick(elem, func){
element.addEventListener('click', func(event, elem), false);
}