398 votes

Comment passer des arguments à la fonction d’écouteur addEventListener ?

La situation est quelque peu semblable-

Le problème est que la valeur de n’est pas visible à l’intérieur de la fonction d’auditeur de la , où il est probablement considéré comme une nouvelle variable.

Merci d’avance.

440voto

Zaloz Points 241

Pourquoi ne pas simplement obtenir les arguments de l’attribut cible de l’événement ?

Exemple :

JavaScript est un langage orienté prototype, n’oubliez pas !

265voto

Sergey Ilinsky Points 16803

Il n’y a absolument rien de mal avec le code que vous avez écrit. Les une_fonction et someVar doivent être accessibles, dans le cas où ils étaient disponibles dans le contexte où anonyme `` a été créé.

Vérifier si l’alerte vous donne la valeur que vous recherchez, n’oubliez pas qu'il sera accessible dans le cadre de la fonction anonyme (sauf si vous avez plus de code qui fonctionne sur la même variable de someVar à côté de l’appel à la méthode addEventListener)

88voto

Brian Moore Points 177

Cette question est vieux, mais j’ai pensé que je voudrais proposer une alternative à l’aide .bind() de l’ES5 - pour la postérité. :)

Soyez conscient que vous avez besoin de mettre en place votre fonction d’écouteur avec le premier paramètre comme argument tu es de passage dans bind (votre autre fonction) et le deuxième paramètre est maintenant l’événement (au lieu de la première, telle qu’elle aurait été).

9voto

Thevs Points 1894

valeur doit être accessible qu’en contexte, pas de l’auditeur. Si vous aimez qu’elle soit au sein de l’écouteur, vous devez faire quelque chose comme :

et utilisez `` au lieu de cela.

L’autre moyen est de retour valeur de pour l’utiliser plus dans listener (comme un nouveau var local) :

1voto

DMike92 Points 31

Essayez aussi ces (IE8 + Chrome. Je ne sais pas pour FF) :

Espérons qu’il n’y a aucune fautes de frappe  :-)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X