最近在完成灯箱效果时,需要获取for循环中i的实时值来定位大图轮播的索引,但最初获得的是i的最大值
几种获取for循环中i的实时值方法:
自调:
for (var i = 0; i < itemli.length; i++) {
(function (arg) {
itemli[arg].onclick = function () {
console.log(arg);
}
})(i);
};
闭包:
for (var i = 0 ; i < itemli.length ; i++) {
itemli[i].onclick = function (arg) {
return function () {
console.log(arg);
}
}(i);
};
let代替var:
每次执行都是一个全新的独立的块作用域,用let声明的变量传入到 for循环体的作用域后,不会发生改变,不受外界的影响。
for (let i = 0; i < itemli.length; i++) {
itemli[i].onclick = function () {
console.log(i);
}
};