vara=5;for(vari=0;i<a;i++){imglist[i].onclick=function(){console.log(i)}}当我们进行点击操作会发现控制台打印出来的不是每个标签对应的index而一直都是最后一个标签对应的index为什么会出现这种情况?其实此时的i是全局变量点击函数只有在执行的时候才会去查找i值首先会在点击函数内部查找,而i没有定义再到函数外部去查找,此
分类:
其他好文 时间:
2018-04-23 11:04:34
阅读次数:
171
在js中,如果用for循环进行事件绑定,可能会遇到一点小问题,看下面第一个示例,无论点击哪个div,都会弹出3,即length。 因为这相当于事件绑定的同时,并没有把所对应的i进行一起绑定,i的值是最后一个值,即3。 示例1 再看下面两个例子,通过事件绑定的同时,通过函数调用而不是函数定义进行i与事 ...
分类:
Web程序 时间:
2018-02-22 15:26:38
阅读次数:
183
一、循环事件绑定: 这样绑定能否成功呢?发现不能,每次点击都会是5,因为触发事件的时候循环已经完了。其本质就是js没有局部作用域的概念,那么如何实现呢? 1、采用闭包: 2、采用新增索引值,对初学者更好理解一些 3、采用new关键字 4、采用ES5的forEach()方法 5、采用ES6块级作用域变 ...
分类:
其他好文 时间:
2017-07-30 18:02:33
阅读次数:
100