JavaScript回调方法中使用外部变量出现的问题
2016-01-22 11:35
666 查看
测试用例
上边方法的目的是给三个bt绑定点击事件,预期的结果是
但是执行后的结果是,点击三个按钮输出的都是3。
bt被点击后回调绑定的click中的方法,回调方法直接使用了外部变量i,而不是自己设置临时变量保存i的结果。
解决办法
function cprint(str) { console.log(str); } function temp() { for(var i=0; i<3; i++) { $("#bt"+i).click(function() { cprint(i); }); } }
上边方法的目的是给三个bt绑定点击事件,预期的结果是
bt0 click: 0 bt1 click: 1 bt2 click: 2
但是执行后的结果是,点击三个按钮输出的都是3。
bt被点击后回调绑定的click中的方法,回调方法直接使用了外部变量i,而不是自己设置临时变量保存i的结果。
解决办法
function temp() { for(var i=0; i<3; i++) { click(i); } } function click(i) { $("#bt"+i).click(function() { cprint(i); }); }
相关文章推荐
- Extjs 动态改变grid的store加载路由
- 超好用的javascript 实现右加左减
- J2EE的基础学习_jsp_servlet_获得连接池
- javascript 运算优先级
- JSON 数据格式
- JavaScript遇到的变量作用域的问题
- JSON对象遍历方法
- JS- 封装、继承、多态
- JavaScript浏览器对象
- 基于JavaScript实现高德地图和百度地图提取行政区边界经纬度坐标
- js的history.pushstate()作用
- javascript开发的45个技巧
- javascript中的toString()方法
- JavaScript对象与数组
- JavaScript 逼真图片倒计时实现代码 js时间图片倒计时
- MVC按钮提交js验证
- 在JavaScript中call()与apply()区别
- 毫秒数转换为指定格式日期的js代码
- jsp之间传参中文乱码问题
- 很全面的JavaScript常用功能汇总集合