今天遇到了这个问题:
复制代码 代码如下:
//伪代码
for (var i=0; i<n; i++) {
addEvent(obj[i], "click", func(i));
}
结果出现了问题,所有的dom都被注册了 i=n 的时候的事件,查了一些资料,说是在循环过程过this被改变,注册过的事件也被随之改变,找到了一种解决方法;
复制代码 代码如下:
for (var i=0; i<n; i++) {
(function (i){addEvent(obj[i], "click", function (){func(i);});})(i);
}
利用必包保持对变量的持久引用,很强大的说!
(如果您有更好的方法,请不吝赐教(*^__^*) 嘻嘻……)
延伸阅读
- 2011-9-23-- js闭包,谈谈Javascript闭包
- 2011-9-14-- 百度地图api,透过【百度地图API】分析双闭包问题
- 2010-12-9-- js闭包,浅谈PHP 闭包特性在实际应用中的问题
- 2010-12-15-- js闭包,JavaScript闭包
- 2010-11-24-- js闭包,我的JavaScript之旅——"闭包 是什么时候创建的
- 2010-12-9-- js闭包,javascript学习之闭包分析
- 2010-12-31-- js闭包,javascript 闭包疑问
- 2011-6-27-- f的闭包,8.2.3 在 F# 使用闭包捕获状态
- 2010-12-15-- js闭包,根据一段代码浅谈Javascript闭包
- 2010-12-31-- 函数闭包,javascript中运用闭包和自执行函数解决大量的全局变量问题
最新评论