Je suis nouveau javascript et essayer de comprendre le comportement de ce code, qui tente d'assigner des gestionnaires onclick uniques à différents éléments DOM dans les myElements du tableau []:javascript fonction dans la boucle/fermeture
(function handleClicks(){
for (var i = 0; i < 100; ++i) {
myElements[i].onclick = function() {
alert('You clicked on: ' + i);
};
})();
je crois comprendre que chaque fois qu'un élément DOM est cliqué, le navigateur doit alerter « Vous avez cliqué sur 100 » comme javascript utilisera la valeur i a une fois que la fonction a terminé
J'ai deux questions:
- Si i a une portée que dans la fonction handleClicks() comment l'accès au navigateur i fois la fonction terminée - sûrement i n'existe plus?
- J'ai essayé ce code en mettant deux éléments HTML dans le tableau
var myElements = [];
myElements.push(document.getElementById('1');
myElements.push(document.getElementById('2');
http://jsfiddle.net/branmong/fS7qE/
Mais lorsque le programme est exécuté, il avertit « que vous avez cliqué sur: 2 » pour chaque élément cliqué .
Pourquoi n'est-il pas en alerte 'vous avez cliqué sur: 100'. comme c'est sûrement la valeur de moi une fois que la fonction a fini de fonctionner?
Merci - bonne explication – Binaromong