JavaScript在for循环中绑定事件解决事件参数不同的情况

2019-12-24,,,

有时候要对响应一堆相似的事件,但是每个事件的参数都不同,一开始还以为挺简单的,用个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会成为函数的局部变量

您可能感兴趣的文章:

  • js添加绑定事件的方法
  • JavaScript绑定事件监听函数的通用方法
  • JavaScript中利用jQuery绑定事件的几种方式小结
  • 理解JS绑定事件
  • js绑定事件this指向发生改变的问题解决方法
  • JS中批量给元素绑定事件过程中的相关问题使用闭包解决
  • javascript重复绑定事件造成的后果说明
  • js移除事件 js绑定事件实例应用
  • JS中动态添加事件(绑定事件)的代码
  • Javascript动态绑定事件的简单实现代码
  • js和jquery批量绑定事件传参数一(新猪猪原创)
  • javascript 浏览器判断 绑定事件 arguments 转换数组 数组遍历
  • Javascript循环绑定事件的示例代码
  • 浅析js绑定事件的常用方法

《JavaScript在for循环中绑定事件解决事件参数不同的情况.doc》

下载本文的Word格式文档,以方便收藏与打印。