2010-08-27 11 views

risposta

37

Prova questo:

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

o questo:

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

La ragione di questo è che .delay() ritarderà solo gli elementi in una coda di animazione. Puoi quindi creare .show() una breve animazione aggiungendo una durata di "0" o aggiungerla alla coda con .queue().

+4

Se fai la fila manualmente, non dimenticare di disconnettere! :) –

+0

@Nick - Ho appena aggiunto 'n();', ma è necessario quando è l'ultimo elemento? – user113716

+0

Sì, se per esempio si chiama un'animazione successiva, meglio essere sicuri con IMO, in alternativa si può chiamare '$ (this) .show(). Dequeue()', questo è quello che tendo a fare quando si ha a che fare con '$ (questo) ', un po 'più pulito per me comunque. –

13

Si può fare in questo modo:

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

Il problema con .delay() e .show() (senza durata), è che .show() non è un'animazione, è un effetto immediato che non è sulla coda fx a tutti. Puoi comunque dargli una durata, come questa:

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

Sempre alla ricerca di ritardo su google quando ho bisogno di usare setTimeout. Quindi questo post mi ha aiutato un paio di volte :) – Kimtho6

Problemi correlati