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 相关文章推荐
jQuery EasyUI API 中文文档 - Documentation 文档
Sep 29 Javascript
离开当前页面前使用js判断条件提示是否要离开页面
May 02 Javascript
手机号码,密码正则验证
Sep 04 Javascript
jQuery插件multiScroll实现全屏鼠标滚动切换页面特效
Apr 12 Javascript
每天一篇javascript学习小结(Date对象)
Nov 13 Javascript
基于JavaScript实现百叶窗动画效果不只单纯flas可以实现
Feb 29 Javascript
JS中使用FormData上传文件、图片的方法
Aug 07 Javascript
js实现input密码框显示/隐藏功能
Sep 10 Javascript
小程序实现多列选择器
Feb 15 Javascript
JavaScript中this用法学习笔记
Mar 17 Javascript
JS学习笔记之闭包小案例分析
May 29 Javascript
JavaScript组合模式---引入案例分析
May 23 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
PHP学习之PHP表达式
2006/10/09 PHP
php 团购折扣计算公式
2011/11/24 PHP
浅析Yii2缓存的使用
2016/05/10 PHP
laravel5.2实现区分前后台用户登录的方法
2017/01/11 PHP
javaScript parseInt字符转化为数字函数使用小结
2009/11/05 Javascript
js客户端快捷键管理类的较完整实现和应用
2010/06/08 Javascript
JavaScript实现拼音排序的方法
2012/11/20 Javascript
jQuery中fadeIn、fadeOut、fadeTo的使用方法(图片显示与隐藏)
2013/05/08 Javascript
jquery移动节点实例
2015/01/14 Javascript
jquery专业的导航菜单特效代码分享
2015/08/29 Javascript
jQuery操作Table技巧大汇总
2016/01/23 Javascript
DWR中各种java方法的调用
2016/05/04 Javascript
bootstrap输入框组代码分享
2016/06/07 Javascript
Javascript中arguments对象的详解与使用方法
2016/10/04 Javascript
微信小程序 form组件详解及简单实例
2017/01/10 Javascript
微信小程序 仿猫眼实现实例代码
2017/03/14 Javascript
详谈javascript精度问题与调整
2017/07/08 Javascript
node的process以及child_process模块学习笔记
2018/03/06 Javascript
vue主动刷新页面及列表数据删除后的刷新实例
2018/09/16 Javascript
高效jQuery选择器的5个技巧实例分析
2019/11/26 jQuery
[45:16]完美世界DOTA2联赛PWL S3 Magma vs Phoenix 第一场 12.12
2020/12/16 DOTA
对python中list的拷贝与numpy的array的拷贝详解
2019/01/29 Python
Python实现定制自动化业务流量报表周报功能【XlsxWriter模块】
2019/03/11 Python
Python读取xlsx文件的实现方法
2019/07/04 Python
Django mysqlclient安装和使用详解
2020/09/17 Python
俄罗斯香水和化妆品购物网站:Л’Этуаль
2018/05/10 全球购物
ABOUT YOU匈牙利:500个最受欢迎的时尚品牌
2019/07/19 全球购物
Linux Interview Questions For software testers
2013/05/17 面试题
高三历史教学反思
2014/01/09 职场文书
结婚喜宴家长答谢词
2014/01/15 职场文书
2014年计算机专业个人自我评价
2014/01/19 职场文书
毕业生求职信的经典写法
2014/01/31 职场文书
2014年驻村干部工作总结
2014/11/17 职场文书
先进班集体事迹材料
2014/12/25 职场文书
2016入党积极分子党课学习心得体会
2015/10/09 职场文书
python数字图像处理之对比度与亮度调整示例
2022/06/28 Python