Utilisation setTimeout()
directement (ce qui .delay()
utilise en interne) est plus simple ici, puisque .remove()
n'est pas une fonction mis en attente, dans l'ensemble, il devrait ressembler à ceci:
$('body').append("<div class='message success'>Upload successful!</div>");
setTimeout(function() {
$('.message').remove();
}, 2000);
You can give it a try here.
.delay()
est pour l'animation (ou tout autre nom) file d'attente pour l'utiliser, vous auriez à faire quelque chose comme:
$("<div class='message success'>Upload successful!</div>").appendTo('body')
.delay(2000).queue(function() { $(this).remove(); });
Which works, here ... mais est tout simplement surpuissant et terriblement inefficace, pour l'amour de chaînage IMO. Normalement, vous devrez également appeler dequeue ou la fonction suivante, mais puisque vous supprimez l'élément de toute façon ...
+1 toujours fournir de bonnes réponses jquery similaires à celle que vous avez fournie f ou moi plus tôt ... –
@ Shog9 - Pour être * complètement * précis ce ne sont pas * simplement * des animations, c'est juste * par défaut * les animations de file d'attente 'fx' s'exécutent, mais il peut y avoir n'importe quelle file si passé un nom :) –
Woops, a supprimé ce commentaire depuis que vous avez mis à jour votre réponse. Mais vous avez raison, le support de la file d'attente est assez général, et pourrait être utilisé pour d'autres choses - les animations par défaut. – Shog9