【发布时间】:2013-03-07 14:17:41
【问题描述】:
全部 我做了一些看起来像这样的测试代码。
var selects = [$('#elem1'), $('#elem2'), $('#elem3')];
$.each(selects, function(item){
selects[item].bind('click', function(){
console.log("each function : " + item);
});
});
for(var i = 0; i < selects.length; i++){
var elem = selects[i];
elem.bind('click', function(e){
console.log("for loop : " + i);
});
}
我做了三个按钮来绑定事件。并测试
如果我单击名称为“elem1”的按钮,结果是:
console $
each function : 0
for loop : 3
如果我单击名称为“elem2”的按钮,结果是:
console $
each function : 1
for loop : 3
两个循环示例之间发生了什么?请告诉我。
谢谢你,祝你有美好的一天。
【问题讨论】:
-
您可以在 google 中搜索
javascript closure以了解方法和原因。 -
搜索
javascript loop last value。有[太多]重复。找到合适的重复项后,请适当标记此问题。 -
谢谢,我没听说闭包是什么。我会检查。我很高兴理解这一点!感谢 pktangyue、pst 和 Blender