## 雷雷
onmouseover绑定的是一个事件回调函数,只有触发事件时才会执行该回调函数,但在此之前循环已经结束,所以每次触发事件得到的都是最后的值(i=5),解决此问题可以采用IIFE(立即执行函数),如下
for (var i = 0,len = li.length; i < len; i++){ li[i].index = i; // do something... li[i].onmouseover = (function (index){ console.log(index); })(i) console.log(i); }
没看错的话,后面那个i变量已经在循环外,之前赋值已经被替换掉了。如果想全部存储,请申明为json或者拼接字符串
雷雷
onmouseover绑定的是一个事件回调函数,只有触发事件时才会执行该回调函数,但在此之前循环已经结束,所以每次触发事件得到的都是最后的值(i=5),解决此问题可以采用IIFE(立即执行函数),如下
没看错的话,后面那个i变量已经在循环外,之前赋值已经被替换掉了。如果想全部存储,请申明为json或者拼接字符串
雷雷