2012-06-30 84 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

請投票結束該問題。 –

相關問題