Puis-je retarder jQuery addClass?
Est-il un moyen de retarder la addClass()
de jQuery? Par exemple ce code
$('#sampleID').delay(2000).fadeOut(500).delay(2000).addClass('aNewClass');
Lorsque je charge la page, il a la classe 'aNewClass déjà sur id 'sampleID'. Comment résoudre ce problème? Ce que je veux, c'est le addClass va se passer après la fin de la fadeOut()
.
OriginalL'auteur Ryan | 2011-01-29
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser fonction de rappel pour
fadeOut
comme ceci:delay
.Qui ne compte pas dans le code mais grâce fait 🙂
OriginalL'auteur Sarfraz
Vous ne pouvez pas retarder une addClass appel, cependant vous pouvez, si vous l'envelopper dans une file d'attente d'appel, qui prend une fonction en tant que paramètre comme ceci
Voir ce post: jQuery: puis-je appeler delay() entre addClass() et tel?
OriginalL'auteur Dave
Vous ne pouvez pas faire cela avec
delay
, car il affecte uniquement les effets de la file d'attente. Il n'a pas de "suspendre" l'exécution de code plus tard si elle n'est pas implémentée à l'aide de la file d'attente.Vous besoin de faire cela avec
setTimeout
:Il utilise le
complete
rappel defadeOut
et puis définit une fonction pour exécuter les 2 secondes dans le futur.OriginalL'auteur lonesomeday
Vous devez utiliser les callbacks .
http://api.jquery.com/fadeOut/
OriginalL'auteur Arshdeep
Vous pouvez également utiliser setTimeout avec le CSS transition :
Et le CSS
OriginalL'auteur brandozz