Quiero hacer un eventHandler que pase el evento y algunos parámetros. El problema es que la función no obtiene el elemento. Aquí hay un ejemplo:
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
});
El 'elem' debe definirse fuera de la función anónima. ¿Cómo puedo usar el elemento pasado dentro de la función anónima? ¿Hay alguna forma de hacer esto?
¿Y qué pasa con addEventListener? Parece que no puedo pasar el evento a través de un addEventListener en absoluto, ¿verdad?
Actualizar
Parecía solucionar el problema con 'esto'
doClick = function(func){
var that = this;
this.element.onclick = function(e){
func(e, that);
}
}
Donde esto contiene este elemento al que puedo acceder en la función.
El addEventListener
Pero me pregunto sobre addEventListener:
function doClick(elem, func){
element.addEventListener('click', func(event, elem), false);
}