2009-06-23 12 views
6

Je ne peux pas rendre ma div visible avec le show jquery() jusqu'à ce que ma fonction soit terminée! Il fonctionne réellement dans IE/FF mais pas dans Chrome. Comment puis-je m'assurer que mon élément est visible avant de continuer ma fonction?Attendez que jQuery show() se termine avant de continuer la fonction?

Voici mon code:

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

Avec le code que vous avez là, l'élément _ devrait être affiché directement après et si cela ne fonctionne pas dans Chrome, cela serait considéré comme un bug. Etes-vous sûr que vous n'avez pas quelque chose comme «lent» ou une vitesse dans le spectacle? –

+0

Non, je n'utilise pas les paramètres de vitesse. En passant, quand je les utilise, ma div n'apparaît dans aucun navigateur (FF/IE/Chrome) jusqu'à ce que la fonction soit terminée. Vraiment étrange. – David

Répondre

15

Ajouter un rappel à afficher:

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

La fonction de rappel sera appelée lorsque l'animation est terminée.

+0

im en utilisant scrollTop() et ne peux pas être afficher aucun im donc faire cela pour attendre de continuer mais, même cela fonctionne, est l'animation du spectacle de gauche et de faire des trucs bizarres ... –

0

OMI, il serait préférable de mettre le reste de votre fonction dans le paramètre de rappel à show:

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

La mise en garde est que le rappel est tiré (séparément) pour chaque élément qui est dans la sélecteur. Bien si vous montrez seulement un article, cependant.

+0

espérons qu'il n'y aura qu'un seul élément avec un ID de progressbar_area! – redsquare