2

Je dois effacer plusieurs fonctions setTimeoutJquery: Code court pour plusieurs clearTimeout

$('#stop').click(function(){ 
    clearTimeout(anim1); 
    clearTimeout(anim2); 
    clearTimeout(anim3); 
    clearTimeout(anim4); 
    clearTimeout(anim5); 
    clearTimeout(anim6); 
    clearTimeout(anim7); 
    clearTimeout(anim8); 
    clearTimeout(anim9); 
    clearTimeout(anim10); 
}); 

est-il un moyen de court-ce quelque chose de code comme clearTimeout(anim1,anim2,anim3...); je l'ai déjà essayé avec la séparation de coma, mais il ne fonctionne pas façon.

+2

Possible Dupliquer de http://stackoverflow.com/questions/8860188/is-there-a-way-to-clear-all-time-outs – Tushar

+1

La 'réponse acceptée' sur ce duplicata me fait grincer des dents. – user2864740

+0

@ user2864740 ouais, la réponse après c'est celle que l'affiche devrait utiliser – BobbyTables

Répondre

2

les mettre dans un tableau et itérer sur les

var timers = [anim1, anim2, anim3, anim4] //can also be added when created 
for (var t=0;t<timers.length;t++) { 
    clearTimeout(timers[t]); 
} 

En général, lorsque vous devez effectuer la même opération sur un grand nombre ou une quantité inconnue d'objets que vous devez les mettre dans un tableau ou les structurer un objet où vous pouvez adresser tous les éléments par programme. Heres un guide complet à indexed collections

+0

Il serait préférable de ne pas avoir les variables 'animN' du tout .. – user2864740