Heim Web-Frontend js-Tutorial JavaScript在for循环中绑定事件解决事件参数不同的情况_javascript技巧

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

May 16, 2016 pm 05:03 PM
for循环 Bindendes Ereignis

有时候要对响应一堆相似的事件,但是每个事件的参数都不同,一开始还以为挺简单的,用个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会成为函数的局部变量
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie man mit PHP ungerade Zahlen innerhalb von 100 findet Wie man mit PHP ungerade Zahlen innerhalb von 100 findet Dec 23, 2022 pm 06:54 PM

Implementierungsschritte: 1. Verwenden Sie den Steuerbereich der for-Anweisung, um die Zahlen von 1 bis 100 zu durchlaufen. Die Syntax lautet „for ($i = 1; $i <= 100; $i++) {loop body code}“; Verwenden Sie einfach die if-Anweisung und den „%“-Operator, um ungerade Zahlen zu erhalten und auszugeben. Die Syntax lautet „if($i % 2 != 0){echo $i.“

Was ist die Ausführungsreihenfolge der for-Schleife in PHP? Was ist die Ausführungsreihenfolge der for-Schleife in PHP? Sep 22, 2021 pm 06:24 PM

Ausführungssequenz: 1. Führen Sie den „Initialisierungsausdruck“ aus. 2. Führen Sie den „Bedingungsausdruck“ aus. Andernfalls beenden Sie die Schleife Körper, führen Sie „Variablenaktualisierungsausdruck“ aus. 4. Geben Sie nach der Aktualisierung der Variablen die nächste Schleife ein, bis der Bedingungsbeurteilungswert falsch ist, und beenden Sie die Schleife.

JS-Schleifenlernen: Verwendung von for-Schleifenanweisungen (detaillierte Beispiele) JS-Schleifenlernen: Verwendung von for-Schleifenanweisungen (detaillierte Beispiele) Aug 03, 2022 pm 06:45 PM

Im vorherigen Artikel „JS-Schleifenlernen: Die Verwendung von While-Schleifenanweisungen (detaillierte Beispiele)“ haben wir kurz etwas über die while-Schleife und die do-while-Schleife gelernt, und heute werden wir eine andere Art von Schleife vorstellen – die for-Schleifenanweisung I Ich hoffe, es wird allen nützlich sein!

So verwenden Sie eine for-Schleife in Python So verwenden Sie eine for-Schleife in Python Oct 25, 2023 pm 12:18 PM

So verwenden Sie die for-Schleife in Python Python ist eine einfache und benutzerfreundliche Programmiersprache und die for-Schleife ist eines der am häufigsten verwendeten Werkzeuge. Durch die Verwendung von for-Schleifen können wir eine Reihe von Daten durchlaufen, effektive Verarbeitungen und Operationen durchführen und die Effizienz des Codes verbessern. Im Folgenden werde ich anhand spezifischer Codebeispiele die Verwendung der for-Schleife in Python vorstellen. Grundlegende for-Schleifensyntax In Python lautet die Syntax einer for-Schleife wie folgt: für Variable in iterierbarem Objekt:

Hat MySQL eine for-Schleife? Hat MySQL eine for-Schleife? Mar 30, 2023 pm 08:26 PM

MySQL verfügt nicht über eine for-Schleife. MySQL unterstützt nur drei Schleifenanweisungen: WHILE, REPEAT und LOOP, sodass Sie einen SQL-Codeblock wiederholt auf der Grundlage von Bedingungen ausführen können.

Wie trenne ich gerade und ungerade Zahlen in einem Array mithilfe einer for-Schleife in der C-Sprache? Wie trenne ich gerade und ungerade Zahlen in einem Array mithilfe einer for-Schleife in der C-Sprache? Aug 25, 2023 pm 03:09 PM

Ein Array ist eine Gruppe zusammengehöriger Datenelemente, die unter einem einzigen Namen gespeichert sind. Zum Beispiel ist intStudent[30];//student ein Array-Name, eine Sammlung von 30 Datenelementen, die einen einzelnen Variablennamen enthalten. Operative Suche des Arrays – wird verwendet, um herauszufinden, ob ein bestimmtes Element vorhanden ist. Sortierung – hilft, die Elemente im Array anzuordnen in aufsteigender Reihenfolge oder in absteigender Reihenfolge sortieren. Traversal – Es verarbeitet jedes Element im Array nacheinander. Einfügen – Es hilft, Elemente in ein Array einzufügen. Löschen – Hilft beim Löschen von Elementen aus einem Array. Elemente im Array. Die Logik zum Finden gerader Zahlen in einem Array ist wie folgt: for(i=0;i<size;i++){ if(a[i]%2==0){

Was ist die Verwendung von Python for-Schleife? Was ist die Verwendung von Python for-Schleife? Sep 26, 2023 am 10:34 AM

Die Verwendung einer Python-For-Schleife besteht darin, ein iterierbares Objekt, andere Arten iterierbarer Objekte, verschachtelte Schleifen und Schleifenkontrollanweisungen zu durchlaufen. Detaillierte Einführung: 1. Durchlaufen Sie ein iterierbares Objekt, um den Namen des aktuellen Elements in jeder Iteration zu speichern Die Variable char speichert nacheinander jedes Zeichen in der Zeichenfolgennachricht und druckt es über die Druckfunktion usw. aus.

Wie drucke ich einen Kalender für einen vom Benutzer ausgewählten Monat mithilfe einer for-Schleife in C? Wie drucke ich einen Kalender für einen vom Benutzer ausgewählten Monat mithilfe einer for-Schleife in C? Aug 28, 2023 pm 03:41 PM

Die Logik zum Drucken eines Monatskalenders lautet wie folgt: − for(i=1;i<first;i++)  printf("");for(i=1;i<=noofdays;i++){  printf("%3d",i);  if((first+i-1)%7==0) &nb

See all articles