Maison interface Web js tutoriel JavaScript在for循环中绑定事件解决事件参数不同的情况_javascript技巧

JavaScript在for循环中绑定事件解决事件参数不同的情况_javascript技巧

May 16, 2016 pm 05:03 PM
for循环 Événements contraignants

有时候要对响应一堆相似的事件,但是每个事件的参数都不同,一开始还以为挺简单的,用个for循环不就得了,结果发现,额,都是使用了最后一个参数。。。

上网查资料!!!结果大神说用闭包解决

代码:

复制代码 代码如下:

for(var i=0;ibtns[i].onclick=(function(i){
return function(){alert(i)}
})(i)
}

大概原因是直接用btns[i].onclick=function(){alert(i)}时,JavaScript引擎会先将for循环里的代码执行完,

当用户出发onclick事件时,JavaScript会寻找i,结果会找到运算完成之后的i,也就是10

但是用闭包处理的话,i会成为函数的局部变量
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment utiliser PHP pour trouver des nombres impairs inférieurs à 100 Comment utiliser PHP pour trouver des nombres impairs inférieurs à 100 Dec 23, 2022 pm 06:54 PM

Étapes de mise en œuvre : 1. Utilisez la plage de contrôle de l'instruction for pour parcourir les nombres de 1 à 100, la syntaxe est "for ($i = 1; $i <= 100; $i++) {code du corps de la boucle}" ; le corps de la boucle, utilisez simplement l'instruction if et l'opérateur "%" pour obtenir et afficher des nombres impairs. La syntaxe est "if($i % 2 != 0){echo $i ";}".

Quel est l'ordre d'exécution de la boucle for en PHP Quel est l'ordre d'exécution de la boucle for en PHP Sep 22, 2021 pm 06:24 PM

Séquence d'exécution : 1. Exécutez « l'expression d'initialisation » ; 2. Exécutez « l'expression de jugement conditionnel ». Si la valeur de l'expression est vraie, exécutez le « corps de la boucle » ; corps, exécutez « Expression de mise à jour de variable » ; 4. Une fois la variable mise à jour, entrez dans la boucle suivante jusqu'à ce que la valeur du jugement de condition soit fausse, mettant ainsi fin à la boucle.

Apprentissage en boucle JS : utilisation des instructions de boucle for (exemples détaillés) Apprentissage en boucle JS : utilisation des instructions de boucle for (exemples détaillés) Aug 03, 2022 pm 06:45 PM

Dans l'article précédent "Apprentissage des boucles JS : utilisation des instructions de boucle While (exemples détaillés)", nous avons brièvement découvert les boucles while et les boucles do while, et aujourd'hui nous présenterons une autre boucle - l'instruction de boucle for, j'espère que ce sera le cas. utile à tout le monde.

Comment utiliser la boucle for en Python Comment utiliser la boucle for en Python Oct 25, 2023 pm 12:18 PM

Comment utiliser la boucle for en Python Python est un langage de programmation simple et facile à utiliser, et la boucle for est l'un des outils les plus couramment utilisés. En utilisant des boucles for, nous pouvons parcourir une série de données, effectuer des traitements et des opérations efficaces et améliorer l'efficacité du code. Ci-dessous, je vais vous présenter comment utiliser la boucle for en Python à travers des exemples de code spécifiques. Syntaxe de base de la boucle for En Python, la syntaxe d'une boucle for est la suivante : variable for dans un objet itérable :

MySQL a-t-il une boucle for ? MySQL a-t-il une boucle for ? Mar 30, 2023 pm 08:26 PM

MySQL n'a pas de boucle for. MySQL ne prend pas en charge les instructions de boucle. Il ne prend en charge que trois instructions de boucle : WHILE, REPEAT et LOOP. MySQL fournit des instructions de boucle, vous permettant d'exécuter à plusieurs reprises un bloc de code SQL en fonction de conditions.

Comment séparer les nombres pairs et impairs dans un tableau en utilisant la boucle for en langage C ? Comment séparer les nombres pairs et impairs dans un tableau en utilisant la boucle for en langage C ? Aug 25, 2023 pm 03:09 PM

Un tableau est un groupe d’éléments de données associés stockés sous un seul nom. Par exemple, intStudent[30];//student est un nom de tableau, une collection de 30 éléments de données contenant un seul nom de variable Recherche opérationnelle de tableau - utilisée pour savoir si un élément spécifique existe en tri - elle aide à organiser les éléments dans le tableau par ordre croissant ou Trier par ordre décroissant. Traversal - Il traite chaque élément du tableau de manière séquentielle. Insertion - Cela aide à insérer des éléments dans un tableau. Supprimer - Cela aide à supprimer des éléments d'un tableau. éléments du tableau. La logique pour trouver des nombres pairs dans un tableau est la suivante - for(i=0;i<size;i++){ if(a[i]%2==0){

Comment imprimer un calendrier pour un mois sélectionné par l'utilisateur à l'aide d'une boucle for en C ? Comment imprimer un calendrier pour un mois sélectionné par l'utilisateur à l'aide d'une boucle for en C ? Aug 28, 2023 pm 03:41 PM

La logique d'impression d'un calendrier mensuel est la suivante : for(i=1;i<first;i++)  printf("");for(i=1;i<=noofdays;i++){  printf("%3d",i);  si((premier+i-1)%7==0) &nb

Gestion de grands tableaux dans Go : utiliser for range ou for loop ? Gestion de grands tableaux dans Go : utiliser for range ou for loop ? Jul 24, 2023 pm 02:47 PM

Nous savons que la syntaxe de Go est relativement concise. Il ne fournit pas de syntaxe de contrôle de boucle telle que while, do... while, etc. prise en charge par C, mais ne conserve qu'une seule instruction, la boucle for.

See all articles