2010-05-13 56 views
0

我有下面的代碼,只要點擊一個按鈕,就會觸發兩個函數。但它只會觸發一次功能。如果我再次點擊它,它什麼都不做。我需要重置此隊列,以便每次單擊該按鈕時都會觸發該功能。Jquery清除/重置.Queue()?

此外,我只是這樣做,所以我可以延遲功能被解僱1000毫秒 - 是否有另一種方法來做到這一點?

$('#play').click(function() { 
// other code.. 

$(this).delay(1000).queue(function(){ countHourly(); countFlights() }); 

}); 

回答

3

jQuery.delay()是最好的排隊jQuery效果和這樣之間延遲,並且是沒有爲JavaScript的本機setTimeout函數的替代,其可以是更適合於某些使用情況。 http://api.jquery.com/delay/

我建議你使用setTimeout函數在這種情況下

$('#play').click(function() { 
    setTimeout(function(){ countHourly(); countFlights() }, 1000); 
}); 
1

設置一個計時器延遲的 隊列中的後續項目的執行。 .delay()

$(this).delay(1000).queue(function(){ countHourly(); countFlights() });// delay 1000 would just happen if $(this) is being animated before .delay(1000)... 

我會建議你使用window.setTimeout()