2009-06-23 17 views
6

Non riesco a rendere visibile il mio div con jquery show() finché la mia funzione non è terminata! Funziona in realtà in IE/FF ma non in Chrome. Come posso assicurarmi che il mio elemento sia visibile prima di continuare con la mia funzione?Attendi che jQuery show() termini prima di continuare la funzione?

Ecco il mio codice:

function doOperation(){ 
    $("#progressbar_area").show(); 
    (...) 
} 
+0

Con il codice che hai lì l'elemento _should_ essere mostrato subito dopo e se ciò non funziona in Chrome sarebbe considerato un bug. Sei sicuro di non avere qualcosa come "lento" o una velocità all'interno dello spettacolo? –

+0

No, non uso i parametri di velocità. A proposito, quando li uso, il mio div non viene visualizzato in nessun browser (FF/IE/Chrome) finché la funzione non è terminata. Davvero strano – David

risposta

15

Aggiungi un callback per mostrare:

$("#progressbar_area").show(speed, function() {}); 

La funzione di callback verrà chiamata quando l'animazione è completa.

+0

im usando scrollTop() e non posso visualizzarne nessuno, così sto aspettando di continuare ma, anche se funziona, sta animando lo spettacolo da sinistra e facendo cose strane ... –

0

IMO, sarebbe meglio mettere il resto della vostra funzione nel parametro callback per show:

$("#progressbar_area").show("fast", function() {...}); 

L'avvertenza è che il callback viene licenziato (a parte) per ogni elemento che si trova nella selettore. Bene, se mostri solo un oggetto, però.

+0

speriamo che ci sarà solo un elemento con un id di progressbar_area! – redsquare

Problemi correlati