Eu quero fazer um eventHandler que passa o evento e alguns parâmetros. O problema é que a função não obtém o elemento. Aqui está um exemplo:
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
});
O 'elem' deve ser definido fora da função anônima. Como posso obter o elemento passado para usar na função anônima? Existe uma maneira de fazer isso?
E quanto ao addEventListener? Parece que não consigo passar o evento por um addEventListener, não é?
Atualizar
Parece que resolvi o problema com 'isso'
doClick = function(func){
var that = this;
this.element.onclick = function(e){
func(e, that);
}
}
Onde ele contém este elemento que posso acessar na função.
O addEventListener
Mas estou me perguntando sobre o addEventListener:
function doClick(elem, func){
element.addEventListener('click', func(event, elem), false);
}