javascript中循环绑定监听事件的解决方案
来源:互联网 发布:战争风云扫矿软件 编辑:程序博客网 时间:2024/05/16 17:48
javaScript中当在一个for循环中绑定事件时,如果事件响应函数中使用了for循环中的局部变量时,会导致所有响应函数中使用的变量都是最后一次循环中的局部变量的值。
举例(此代码示例参考其他文章,找不到原文链接了):
<input type="button" value="btn1" id="btn1"/> <input type="button" value="btn2" id="btn2"/> <input type="button" value="btn3" id="btn3"/> <script type="text/javascript"> for(var i=1;i<=3;i++){ document.getElementById('btn' + i).addEventListener("click",function(){ alert(i); }); } </script>
解决方案:使用闭包,把这个循环变量当前的值保存起来
for(var i=1;i<=3;i++){ document.getElementById('btn' + i).addEventListener("click",(function(num){ return function(){ alert(num);}; })(i));}
for(var i=0;i<length;i++){ var carPlateNumber=selectedCars[part*limitLen+j][0]; var carId=selectedCars[part*limitLen+j][2]; marker.addEventListener('click',(function(myCarId,myCarPlateNumber){ return function(){ // 具体代码中使用到了carId和carPlateNumber这两个变量 })(carId,carPlateNumber)); }
0 0
- javascript中循环绑定监听事件的解决方案
- JavaScript中绑定事件监听函数的通用方法[ addEvent() ]
- javascript中循环加载监听事件的闭包问题
- JavaScript 在for循环中绑定事件
- JavaScript:事件绑定与监听
- JavaScript事件的绑定与取消和事件监听
- JavaScript事件绑定和事件监听的区别
- js循环绑定事件解决方案
- js循环绑定事件解决方案
- js循环绑定事件解决方案
- JavaScript 事件绑定、事件监听、事件委托
- Javascript事件绑定、事件监听、事件委托
- JavaScript中为事件句柄绑定监听函数
- JavaScript中绑定事件监听函数的通用方法 addEvent() [转]
- JavaScript中事件绑定
- javascript闭包传参和事件的循环绑定示例探讨
- javascript闭包传参和事件的循环绑定示例探讨
- javascript中通用的绑定事件代码
- iOS Block循环引用精讲
- JavaScript数组常用方法
- 欢迎使用CSDN-markdown编辑器
- 数独游戏开发
- ViewPager+Fragment setUserVisibleHint取消预加载(延迟加载)
- javascript中循环绑定监听事件的解决方案
- jar包,用proguardgui 进行混淆
- css篇——float
- ios布局
- js中的原型与继承
- CodeForces Experimental Educational Round: VolBIT Formulas Blitz A. Again Twenty Five!
- 使用Linux中sar命令性能定位分析的经验性步骤
- Linux Scp命令的使用
- 纯JS文本比较工具