循环绑定事件

var a = 5;

for(var i = 0;i<a ;i++){

   imglist [ i ].onclick = function(){

                console.log(i)

    }

}

当我们进行点击操作会发现 控制台打印出来的 不是每个标签对应的index 而一直都是最后一个标签对应的index

为什么会出现这种情况?
其实此时的 i 是全局变量 点击函数只有在执行的时候才会去查找 i 值
首先会在点击函数内部查找, 而 i 没有定义 再到函数外部去查找,此时有定义,但此时 i 已经循环完毕,因此,无论点哪个标签,弹出的都是最后一个标签的index。

猜你喜欢

转载自blog.51cto.com/13550695/2106649