web-dev-qa-db-fra.com

Fonction de jQuery délai ()

J'ai des jQuery et j'essaie d'appliquer un retard à cela, mais je ne peux pas sembler le faire fonctionner.

La jQuery actuelle est la suivante ...

image.css({"visibility" : "hidden"}).removeClass("image-background");

et j'ai essayé d'ammer cela selon le site Web de JQuery (http://api.jquery.com/delay/) pour appliquer le retard ...

image.delay(800).css({"visibility" : "hidden"}).removeClass("image-background");

mais cela ne semble pas faire de différence.

Quelqu'un peut-il voir un problème avec cela? Ou comment je pourrais résoudre le problème?

Merci d'avance.

19
Phil

La fonction delay() s'applique uniquement aux actions en file d'attente sur l'élément. Le plus souvent, mais pas toujours, ce sont des actions créées par la méthode animate(). Dans ce cas, utilisez setTimeout _ pour exécuter du code après un intervalle spécifié.

Essaye ça:

setTimeout(function() {
    image.css({"visibility" : "hidden"}).removeClass("image-background");
}, 800);
41
Rory McCrossan

.delay() n'est pas seulement pour les animations.

C'est pour quoi que ce soit dans un queue.

image.delay(800)
     .queue(function( nxt ) {
         $(this).css({"visibility":"hidden"}).removeClass("image-background");
         nxt(); // continue the queue
     });

pour l'électeur DOWN:

Voici une démo

35
RightSaidFred