Si je fais ce qui suit, la variable est passée à l'écouteur d'événement attaché où je veux la valeur de la variable au moment de l'ajout de l'écouteur d'événement. Il doit donc alerter "a" et non "b"; il doit donc alerter "a" et non "b";Valeurs de passe Javascript pour fonctionner sur l'écouteur d'événement
1
A
Répondre
7
quelque chose comme:
var foo = 'a';
document
.getElementById('foo')
.addEventListener('click', function(bar) {
// return the actual event handler function
return function() {
doSomething(bar);
};
}(foo) /* <-- call the anonymous function, passing in the current foo*/, false);
foo = 'b';
function doSomething (val) {
alert(val);
}
+0
wow gold star pour vous! – user1209203
0
Étant donné que foo est global, foo est écrasé sur la ligne 3 avant la détection de l'événement.
Vous pouvez envisager aller chercher la valeur de foo et de le stocker sur un objet ou dans un plug-in ou similaire à abstraire loin de votre flux de code normal ou de passer dans la fonction de rappel:
Document. addEventListener ('mousedown', (function (outerFoo) {fait quelque chose (outerFoo);}) (foo), false);
Questions connexes
- 1. objet passe JavaScript pour fonctionner problème
- 2. JavaScript passe this.value argument pour fonctionner
- 3. Python: passe tableau pour fonctionner et boucle sur les valeurs par index
- 4. Passe réseau pour fonctionner pour l'allocation de mémoire
- 5. golang struct passe pour fonctionner (interface args {})
- 6. Passe grand tableau multidimensionnel pour fonctionner en C
- 7. Paramètre passe django pour fonctionner dans la balise de modèle
- 8. C - pointeurs de structure passe Trouble pour fonctionner
- 9. variable dynamique passe de javascript pour php
- 10. expressions régulières javascript pour mot de passe
- 11. valeur passe de javascript pour Vb sous
- 12. tableau de passe Php Javascript pour
- 13. JavaScript pour valider le mot de passe
- 14. Regex pour un mot de passe (Javascript)
- 15. Javascript soudainement cesser de fonctionner
- 16. passer l'id d'élément pour fonctionner dans javascript
- 17. variable PHP ne passe pas à fonctionner
- 18. Valeurs de passe entre UserControls
- 19. vérifier la chaîne sur l'événement javascript passe
- 20. valeurs passe de jsp-jsf
- 21. Passe accentuation sur requête (javascript) (GET)
- 22. Javascript habitude de fonctionner correctement
- 23. passe profondément élément imbriqué de fonctionner dans JQuery
- 24. Comment activer Javascript pour fonctionner correctement dans GeckoFX?
- 25. Javascript cesse de fonctionner sans message d'erreur
- 26. fonctionner - de deux valeurs de tableau?
- 27. Comment coder mon javascript afin de basculer pour fonctionner correctement?
- 28. PHP passe en $ this pour fonctionner en dehors de la classe
- 29. php javascript passe
- 30. Index Javascript pour plusieurs valeurs
Qu'en est-il de créer une copie de la valeur lorsque l'écouteur d'événement est ajouté? –
Il doit être statique car un certain nombre de boutons seront créés. – user1209203
le script a raison d'alerter "b" et non "a", car au moment où l'utilisateur clique, foo a déjà la valeur "b"; ce que vous avez là avec addEventListener est que vous assignez une fonction à cet événement, donc quand l'événement est déclenché la fonction est exécutée – Liviu