Je veux ajouter une classe, attendre 2 secondes et ajouter une autre classe.
.addClass("load").wait(2sec).addClass("done");
Y a-t-il un moyen ?
Je veux ajouter une classe, attendre 2 secondes et ajouter une autre classe.
.addClass("load").wait(2sec).addClass("done");
Y a-t-il un moyen ?
SetTimeout exécutera un certain code après un délai d'une certaine durée (mesurée en millisecondes). Cependant, une note importante : en raison de la nature du javascript, le reste du code continue à s'exécuter après la mise en place du timer :
$('#someid').addClass("load");
setTimeout(function(){
$('#someid').addClass("done");
}, 2000);
// Any code here will execute immediately after the 'load' class is added to the element.
C'est une mauvaise solution pour le moment car elle perd l'avantage d'avoir le contrôle de l'animation par jquery, comme .stop(). une bien meilleure solution est .delay()
Aussi, Steven, vous voulez .removeClass('load')
sinon vous ajoutez à la fois les classes load et done, ce qui est probablement indésirable. Si vous attendez effectivement qu'une action asynchrone se termine, votre meilleure chance est de faire .addClass QUAND elle se termine et est réussie, sinon .addClass('error') peut être une idée.
Je réalise que c'est une vieille question, mais j'ai écrit un plugin pour répondre à ce problème que quelqu'un pourrait trouver utile.
https://github.com/madbook/jquery.wait
vous permet de le faire :
$('#myElement').addClass('load').wait(2000).addClass('done');
En utilisant la fonction setTimeout, par exemple Visitez ici pour un exemple
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.