【发布时间】:2012-12-04 01:41:32
【问题描述】:
我在 javascript 中有以下代码:
for (var i=0; i < images_array.length; i++) {
$('#thumb_'+ i).live('click', function(){
$('#image_container_' + current_image_index).hide();
current_image_index = i;
alert(current_image_index);
$('#image_container_' + current_image_index).show();
});}
当我点击任何拇指时,我会得到 images_array.length 值。有谁知道发生了什么?
【问题讨论】:
-
您的
i变量存储在本地闭包中。您需要添加另一个具有i本地副本的函数级别。 -
这个问题已经在 SO, Y U NO SEARCH 上回答了无数次
-
恐怕只有了解了解决方案后才能轻松搜索。如果不了解闭包的概念,就很难知道要搜索什么......
-
@ScottSauyet:我不同意。搜索“javascript loop function”或任何包含“loop”一词的类似内容。
-
@jAndy:但为什么
loop先验比image、live、click或array更显着?甚至length、current、hide或show,至少出现在代码sn-p中,而loop没有。
标签: javascript jquery slider