2010-08-27 8 views

Répondre

37

Essayez ceci:

$("#microcharcounter").delay(10000).show(0); 

ou ceci:

$("#microcharcounter").delay(10000).queue(function(n) { 
    $(this).show(); 
    n(); 
}); 

La raison est que .delay() ne fera que retarder les éléments dans une file d'attente d'animation. Donc, vous pouvez faire .show() une courte animation en ajoutant une durée de '0', ou l'ajouter à la file d'attente avec .queue().

+4

Si vous mettez en file d'attente manuellement, n'oubliez pas de la dequeue! :) –

+0

@Nick - Juste ajouté 'n();', mais est-il nécessaire quand c'est le dernier élément? – user113716

+0

Yup, si jamais vous appelez une autre animation plus tard par exemple, mieux vaut être sûr OMI, alternativement vous pouvez appeler '$ (this) .show(). Dequeue()', c'est ce que j'ai tendance à faire avec $ (ceci), un peu plus propre à moi de toute façon. –

13

Vous pouvez le faire comme ceci:

setTimeout(function() { 
    $("#microcharcounter").show(); 
}, 20000); 

Le problème avec .delay() et .show() (sans durée), est que .show() n'est pas une animation, il est un effet immédiat qui est pas sur la file d'attente fx à tout. Vous pouvez cependant lui donner une durée, comme ceci:

$("#microcharcounter").delay(20000).show("fast"); 
+0

Toujours à la recherche de délai sur google lorsque j'ai besoin d'utiliser setTimeout. Donc ce post m'a aidé plusieurs fois :) – Kimtho6