Je veux faire un eventHandler
qui transmet l'événement et certains paramètres. Le problème est que la fonction ne reçoit pas l'élément. Voici un exemple :
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
});
En elem
doit être définie en dehors de la fonction anonyme. Comment puis-je obtenir l'élément passé pour l'utiliser dans la fonction anonyme ? Existe-t-il un moyen de le faire ?
Et qu'en est-il des addEventListener
? Je ne semble pas être en mesure de passer l'événement par le biais d'un addEventListener
Je ne suis pas du tout d'accord ?
Mise à jour
Il semble que j'aie résolu le problème avec "ceci
doClick = function(func){
var that = this;
this.element.onclick = function(e){
func(e, that);
}
}
Où cela se trouve this.element
à laquelle je peux accéder dans la fonction.
La fonction addEventListener
Mais je m'interroge sur la addEventListener
:
function doClick(elem, func){
element.addEventListener('click', func(event, elem), false);
}