提升变量作用域
for(var i=0;i<lis.length;i++)
{
lis[i].onmouseover=function()
{
lis[i].style.backgroundColor="yellow";
}
}
因为绑定事件触发的是回调函数,会等到主线程结束后才执行,所以其中的
i是外层循环的最后一个值
解决方法一
利用闭包,自执行函数,立即执行回调函数
(function(m){
lis[m].onmouseover=function()
{
lis[m].style.backgroundColor="yellow";
}
})(m)
**解决方法二**
for(var i=0;i<lis.length;i++)
{
lis[i].index=i;
lis[i].onmousedown=function()
{
lis[this.index].style.backgroundColor="yellow";
}
}
js 解决循环数组绑定事件时函数中的数组失效
最新推荐文章于 2023-02-05 11:42:35 发布