JavaScript在for循环中绑定事件解决事件参数不同的情况
作者:
响应一堆相似的事件,但是每个事件的参数都不同,在这种情况下就可以使用JavaScript 在for循环中绑定事件,下面有个不错的示例,大家可以参考下
有时候要对响应一堆相似的事件,但是每个事件的参数都不同,一开始还以为挺简单的,用个for循环不就得了,结果发现,额,都是使用了最后一个参数。。。
上网查资料!!!结果大神说用闭包解决
代码:
for(var i=0;i<10;i++){
btns[i].onclick=(function(i){
return function(){alert(i)}
})(i)
}
大概原因是直接用btns[i].onclick=function(){alert(i)}时,JavaScript引擎会先将for循环里的代码执行完,
当用户出发onclick事件时,JavaScript会寻找i,结果会找到运算完成之后的i,也就是10
但是用闭包处理的话,i会成为函数的局部变量
上网查资料!!!结果大神说用闭包解决
代码:
复制代码 代码如下:
for(var i=0;i<10;i++){
btns[i].onclick=(function(i){
return function(){alert(i)}
})(i)
}
大概原因是直接用btns[i].onclick=function(){alert(i)}时,JavaScript引擎会先将for循环里的代码执行完,
当用户出发onclick事件时,JavaScript会寻找i,结果会找到运算完成之后的i,也就是10
但是用闭包处理的话,i会成为函数的局部变量
您可能感兴趣的文章:
- js添加绑定事件的方法
- JavaScript绑定事件监听函数的通用方法
- JavaScript中利用jQuery绑定事件的几种方式小结
- 理解JS绑定事件
- js绑定事件this指向发生改变的问题解决方法
- JS中批量给元素绑定事件过程中的相关问题使用闭包解决
- javascript重复绑定事件造成的后果说明
- js移除事件 js绑定事件实例应用
- JS中动态添加事件(绑定事件)的代码
- Javascript动态绑定事件的简单实现代码
- js和jquery批量绑定事件传参数一(新猪猪原创)
- javascript 浏览器判断 绑定事件 arguments 转换数组 数组遍历
- Javascript循环绑定事件的示例代码
- 浅析js绑定事件的常用方法