2012-06-30 85 views
2

我在我的网站上有许多缩略图,这些缩略图都应该显示相同的幻灯片,但显示的幻灯片不同(通过添加和删除.hidden类)。这将通过function showWork(toShow)来完成,其中toShow是一个数字,指的是幻灯片是可见的。该功能还会提醒该参数。Javascript:通过for-loop绑定产生错误的结果

我还想通过将mouseup事件绑定到不同的缩略图div来使用JavaScript。 因为我不想单独列出每一个困境,我决定把所有的div编号在数组(workArr),并创建一个for循环:

for(i=0; i < workArr.length; i++){ 
$("#"+workArr[i]).bind({ 
    mouseup: function(){ 
     showWork(i); 
     }  
}); 
} 

我的阵列具有14时的长度我运行这段代码,得到“14”的警报,没有幻灯片显示(因为没有幻灯片)。

我在做什么错?

谢谢你们

+0

你我没有关闭过 –

+0

这是一个错误的每一个新手JS开发商制作! –

+0

可能重复[Javascript闭合内循环 - 简单的实用示例](http://stackoverflow.com/questions/750486/javascript-closure-inside-loops-simple-practical-example) –

回答

4

您需要使用封闭:

for(i=0; i < workArr.length; i++){ 
    (function(i){ 
     $("#"+workArr[i]).bind({ 
      mouseup: function(){ 
       showWork(i); 
      }  
     });   
    })(i); 
} 
+0

请投票结束该问题。 –

相关问题