2010-05-13 62 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()