2009-06-23 8 views
6

Ich kann mein div nicht mit der jquery show() sichtbar machen, bis meine Funktion beendet ist! Es funktioniert tatsächlich in IE/FF, aber nicht in Chrome. Wie kann ich sicherstellen, dass mein Element sichtbar ist, bevor ich mit meiner Funktion fortfahre?Warten Sie, bis jQuery show() fertig ist, bevor die Funktion fortgesetzt wird?

Hier ist mein Code:

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

Mit dem Code, den Sie dort haben, wird das Element _should_ direkt danach angezeigt und wenn das in Chrome nicht funktioniert, würde es als ein Fehler betrachtet werden. Bist du sicher, dass du nicht so etwas wie "langsam" oder Geschwindigkeit in der Show hast? –

+0

Nein, ich verwende die Geschwindigkeitsparameter nicht. Übrigens, wenn ich sie benutze, wird mein div in keinem Browser (FF/IE/Chrome) angezeigt, bis die Funktion beendet ist. Wirklich seltsam. – David

Antwort

15

einen Rückruf hinzufügen zu zeigen:

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

Die Callback-Funktion wird aufgerufen, wenn die Animation abgeschlossen ist.

+0

ich benutze scrollTop() und kann nicht angezeigt werden none so im tun dies zu warten, um fortzufahren, aber selbst das funktioniert, animiert die Show von links und macht seltsame Sachen ... –

0

IMO, wäre es besser, den Rest Ihrer Funktion in den Callback-Parametern auf show zu setzen:

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

Der Nachteil hierbei ist, dass der Rückruf (separat) gebrannt wird für jedes Element, das in der ist Wähler. Gut, wenn Sie nur einen Gegenstand zeigen.

+0

hoffentlich gibt es nur ein Element mit einer ID von progressbar_area! – redsquare

Verwandte Themen