【发布时间】:2011-09-30 02:02:07
【问题描述】:
我有一个 jquery,当我这样做时可以正常工作:
var slide = [];
slide[1] =
{
hide: function() {
$("#slide-1").hide();
},
show: function() {
$("#slide-1").show(2000);
}
};
slide[1].show(); <<< works fine
但如果我在循环中尝试失败:
for (var i=1; i <= totalSlides; i++) {
slide[i] =
{
hide: function() {
$("#slide-" + i).hide();
},
show: function() {
$("#slide-" + i).show(2000);
}
};
};
slide[1].show(); << unassigned
有什么想法吗?
【问题讨论】:
-
Ӫ_._Ӫ's answer at the bottom 我认为,但如果可以提供帮助,这里有一个或多或少相同的事情的活生生的例子。 jsfiddle.net/X4VQV
-
@richardneililagan:很好的例子来说明这个问题。
-
有道理。因为我将“i”包装在闭包中,所以它被存储为指针而不是值。稍后调用 slide[1].show() 时,i 没有指向任何内容,并抛出错误“未定义”
标签: javascript jquery for-loop unassigned-variable