jquery循环中嵌套一个click事件,事件传入函数中为什么不能使用循环条件i?
本文介绍了jquery循环中嵌套一个click事件,事件传入函数中为什么不能使用循环条件i?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
for (var i = 0; i < liList.length ; i++) {
$(liList[i]).click(function(event) {
console.log(i);
});
}
如上代码
打出的i是liList数组的长度7,并不是当前i的值,为什么?
解决方案
日经问题……
-
用立即执行函数把
.click
事件整个包起来,再用另外的变量保存i
值for (var i = 0; i < liList.length ; i++) { (function(){ var index = i; $(liList[index]).click(function(event) { console.log(index); }); })(); }
-
把
var
换成let
for (let i = 0; i < liList.length ; i++) { $(liList[i]).click(function(event) { console.log(i); }); }
这篇关于jquery循环中嵌套一个click事件,事件传入函数中为什么不能使用循环条件i?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文