dlywcx 于 2014.08.26 12:31 提问
- jquery动态绑定事件问题
-
$(function(){
var index=[0,1,2,3];
for(var i in index){
$($("input[type='button']")[i]).click(function(){alert(i);});
}
});
......
为什么alert出来的都是3?
-
- wangfupeng1988 2014.08.26 16:16
这是个典型的多个作用域引用同一个闭包的问题,这时闭包的数据是共享的。解决方法:
$(function(){
var index=[0,1,2,3];
for(var i in index){
(function(lockedIndex) {
$($("input[type='button']")[i]).click(function(){alert(lockedIndex);});
})(i);
}
});
希望对你有帮助!
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!