2012-10-22 89 views
0

我寫了一個小腳本,它通過一組按鈕來循環,每個按鈕都被分配一個函數。腳本如下:通過一組按鈕循環

$('#play').bind('click', function() { 
    setTimeout(function(){ $('#b12').click(); }, 0); 
    setTimeout(function(){ $('#b13').click(); }, 2500); 
    setTimeout(function(){ $('#b14').click(); }, 5000); 
}); 

現在這工作正常,但我試圖使它不僅僅是調用與`setTimeout的」各功能多一點的自動化。我有下面的代碼,但我覺得我做錯了什麼:

$('#play').click(function(){ 
    $('.buttons').each(function(){ 
     var time = 0; 
     setTimeout(function(){ $(this).click(); }, time); 
     time+= 2500; 
    }); 
}); 

這裏是有問題的HTML:像代碼

<button id="b12" class="buttons" onclick="oct12()">12th</button> 
<button id="b13" class="buttons" onclick="oct13()">13th</button> 
<button id="b14" class="buttons" onclick="oct14()">14th</button> 

<button id="play">play</button> 

回答

1

把你time變量之外。每()波紋管:

$('#play').click(function(){ 
    var time = 0; 
    $('.buttons').each(
     setTimeout(function(){ $(this).click(); }, time); 
     time+= 2500; 
    }); 
}); 
+0

這沒有奏效。但我最初的重新設定時間的錯誤非常愚蠢! – zik

2

可以使用。每個索引對於這一點,在烏拉圭回合的代碼ü重置了時間每次迭代

$('#play').click(function(){ 
     $('.buttons').each(function(i){ 
     setTimeout(function(){ $(this).click(); }, i * 2500);     
     }); 

    }); 

DEMO

+0

嗯,這也沒有工作出於某種原因! – zik

+0

也許你可以解釋一下,你試圖達到的目標,因爲我只是讓你的代碼更加靈活。你現在在每個按鈕上都有一個點擊事件,但是你想要輸出 – henkieee

+0

我想要做的是什麼?點擊播放按鈕時,使每個按鈕後面的功能運行,每個按鈕之間有間隔。我得到的代碼的第一部分工作正常,但我想使它有點「更好」(因爲沒有更好的詞)。換句話說,有沒有更好的方式讓我做第一個腳本,我把... ... – zik