JavaScript在for循环中绑定事件解决事件参数不同的情况_javascript技巧
May 16, 2016 pm 05:03 PM有时候要对响应一堆相似的事件,但是每个事件的参数都不同,一开始还以为挺简单的,用个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会成为函数的局部变量

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Wie man mit PHP ungerade Zahlen innerhalb von 100 findet

Was ist die Ausführungsreihenfolge der for-Schleife in PHP?

JS-Schleifenlernen: Verwendung von for-Schleifenanweisungen (detaillierte Beispiele)

So verwenden Sie eine for-Schleife in Python

Wie trenne ich gerade und ungerade Zahlen in einem Array mithilfe einer for-Schleife in der C-Sprache?

So verwenden Sie eine for-Schleife, um eine Flip-Operation in der Go-Sprache zu implementieren

Wie drucke ich einen Kalender für einen vom Benutzer ausgewählten Monat mithilfe einer for-Schleife in C?

Was ist die Verwendung von Python for-Schleife?
