2010-05-13 7 views
0

J'ai le code suivant qui déclenche deux fonctions chaque fois qu'un bouton est cliqué. Cependant, il ne déclenche les fonctions qu'une seule fois. Si je le clique à nouveau, ça ne fait rien. J'ai besoin de réinitialiser cette file d'attente afin qu'elle déclenche les fonctions chaque fois que je clique sur le bouton.Jquery Effacer/réinitialiser .Queue()?

En outre, je ne fais que cela afin que je puisse retarder les fonctions de 1000ms - y at-il une autre façon de faire?

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

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

}); 

Répondre

3

jQuery.delay() est le mieux pour retarder entre les effets jQuery mises en attente et tels, et ne remplace pas la fonction setTimeout native de JavaScript, qui peut être plus approprié pour certains cas d'utilisation. http://api.jquery.com/delay/

Je vous suggère d'utiliser la fonction setTimeout dans ce cas

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

Réglez une minuterie pour retarder l'exécution de ultérieurs articles dans la file d'attente. .delay()

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

Je vous suggère d'utiliser window.setTimeout()