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


Posted in Javascript onJanuary 20, 2014

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

Javascript 相关文章推荐
对JavaScript的eval()中使用函数的进一步讨论
Jul 26 Javascript
JQuery中getJSON的使用方法
Dec 13 Javascript
解决jquery submit()提交表单提示:f[s] is not a function
Jan 23 Javascript
node在两个div之间移动,用ztree实现
Mar 06 Javascript
JS实现图片高亮展示效果实例
Nov 24 Javascript
详解Node.js如何开发命令行工具
Aug 14 Javascript
AngularJs 动态加载模块和依赖
Sep 15 Javascript
手动初始化Angular的模块与控制器
Dec 26 Javascript
JS加密插件CryptoJS实现的Base64加密示例
Aug 16 Javascript
详解React之key的使用和实践
Sep 29 Javascript
使用Node.js在深度学习中做图片预处理的方法
Sep 18 Javascript
Postman环境变量全局变量使用方法详解
Aug 13 Javascript
javascript break指定标签打破多层循环示例
Jan 20 #Javascript
js点击出现悬浮窗效果不使用JQuery插件
Jan 20 #Javascript
javascript中直接引用Microsoft的COM生成Word
Jan 20 #Javascript
通过复制Table生成word和excel的javascript代码
Jan 20 #Javascript
js取值中form.all和不加all的区别介绍
Jan 20 #Javascript
如何实现textarea里的不同文本显示不同颜色
Jan 20 #Javascript
引用外部脚本时script标签关闭的写法
Jan 20 #Javascript
You might like
一个图形显示IP的PHP程序代码
2007/10/19 PHP
Warning: session_destroy() : Trying to destroy uninitialized sessionq错误
2011/06/16 PHP
关于php循环跳出的问题
2013/07/01 PHP
PHP用星号隐藏部份用户名、身份证、IP、手机号等实例
2014/04/08 PHP
php中 $$str 中 &quot;$$&quot; 的详解
2015/07/06 PHP
PHP 中魔术常量的实例详解
2017/10/26 PHP
PHP基于redis计数器类定义与用法示例
2018/02/08 PHP
PHP实现提高SESSION响应速度的几种方法详解
2019/08/09 PHP
JQuery显示、隐藏div的几种方法简明总结
2015/04/16 Javascript
使用Function.apply()的参数数组化来提高 JavaScript程序性能的技巧
2015/12/23 Javascript
jQuery验证插件validate使用方法详解
2020/09/13 Javascript
解析JavaScript中的字符串类型与字符编码支持
2016/06/24 Javascript
jQuery Easyui datagrid/treegrid 清空数据
2016/07/09 Javascript
详解vue的diff算法原理
2018/05/20 Javascript
vue项目引入字体.ttf的方法
2018/09/28 Javascript
vue+koa2实现session、token登陆状态验证的示例
2019/08/30 Javascript
LayUI数据接口返回实体封装的例子
2019/09/12 Javascript
原生javascript的ajax请求及后台PHP响应操作示例
2020/02/24 Javascript
如何使用RoughViz可视化Vue.js中的草绘图表
2021/01/30 Vue.js
详解python3实现的web端json通信协议
2016/12/29 Python
对Python random模块打乱数组顺序的实例讲解
2018/11/08 Python
简单了解Pandas缺失值处理方法
2019/11/16 Python
Python新建项目自动添加介绍和utf-8编码的方法
2020/12/26 Python
一款纯css3实现的动画加载导航
2014/10/08 HTML / CSS
印尼在线购买隐形眼镜网站:Lensza.co.id
2019/04/27 全球购物
vue+django实现下载文件的示例
2021/03/24 Vue.js
医务人员自我评价
2014/01/26 职场文书
内衣营销方案
2014/03/15 职场文书
担保书怎么写
2014/04/01 职场文书
房屋买卖协议书范本
2014/09/27 职场文书
护士求职自荐信
2015/03/25 职场文书
2015年化工厂工作总结
2015/05/04 职场文书
格林童话读书笔记
2015/06/30 职场文书
入党积极分子培养联系人意见
2015/08/12 职场文书
Go语言中的UTF-8实现
2021/04/26 Golang
Python一些基本的图像操作和处理总结
2021/06/23 Python