2

我的网站上有许多缩略图,它们应该都显示相同的幻灯片,但显示的幻灯片不同(通过添加和删除一个.hidden类)。这将由 来完成function showWork(toShow),它toShow是一个引用应该可见的幻灯片的数字。该函数还提醒这个参数。

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

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

我的数组的长度为 14。当我运行此代码时,我收到“14”的警报,并且没有显示幻灯片(因为没有 14.slide)。

我究竟做错了什么?

4

1 回答 1

4

您需要使用闭包:

for(i=0; i < workArr.length; i++){
    (function(i){
        $("#"+workArr[i]).bind({
            mouseup: function(){
                showWork(i);
            }       
        });        
    })(i);
}
于 2012-06-30T15:57:48.913 回答