当一个页面拥有样式相同的控件并且都绑定了点击事件,如何获取当前点击的下标?
最初想法:
let showall = $('.showall')
for (var i = 0; i < showall.length; i++) {
$(showall[i]).click(function () {
alert(i)
})
}
这样实验过后明显有问题,弹出的都是3,这是为什么呢,因为作用域问题,i被共享了,所以无论点击那个都是最后一个i的值将代码改成如下所示
let showall = $('.showall')
for (var i = 0; i < showall.length; i++) {
(function(i) {
$(showall[i]).click(function () {
alert(i)
})
})(i)
}
通过作用域,使得每一个i 都是独立。