控制台显示:
因为你需要在事件内使用事件外的循环变量i。
当事件触发时,那个循环早就结束了,那时的i的值已经是循环最大值加1了。
所以需要用一些方式保存住当前循环的i的值。
for (var i = 0; i < n; i++) {
(function(i){
bgImg[i].onload = function () {
console.log(bgImg[i]);
}
})(i);
}
for (let i = 0; i < n; i++) {
bgImg[i].onload = function () {
console.log(bgImg[i]);
}
}
for (var i = 0; i < n; i++) {
bgImg[i].index = i;
bgImg[i].onclick = function () {
console.log(bgImg[this.index]);
}
}
把控制台报错贴一下