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会成为函数的局部变量

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Bagaimana menggunakan php untuk mencari nombor ganjil dalam 100

Apakah perintah pelaksanaan untuk gelung dalam PHP

Pembelajaran gelung JS: penggunaan penyataan untuk gelung (contoh terperinci)

Cara menggunakan for loop dalam Python

Bagaimana untuk memisahkan nombor genap dan ganjil dalam tatasusunan menggunakan gelung dalam bahasa C?

Cara menggunakan for loop untuk melaksanakan operasi flip dalam bahasa Go

Bagaimana untuk mencetak kalendar selama sebulan yang dipilih oleh pengguna menggunakan gelung untuk dalam C?
