2010-04-30 12 views
12

Ich benutze JQuery und was ich will ist.jquery Ausblenden, Laden, Einblenden

Div wird mit dem Befehl fadeOut ausgeblendet. Anschließend lädt es Inhalt aus einer URL mit dem Befehl load. Sobald der Inhalt geladen ist, wird er mit dem Befehl fadeIn wieder eingeblendet.

Der Code, den ich habe, ist:

$("#myDiv").fadeOut().load('www.someurl.com').fadeIn() 

aber das funktioniert nicht. Es blinkt, lädt dann und lädt dann hinein. Ich denke, das Problem ist, dass das Verblassen stattfindet, bevor die Ladung abgeschlossen ist.

Was soll ich tun

Dank

Antwort

11

können Sie die load() Callback-Funktion verwenden wie folgt aus:

Sie können den Status der Last verwendet werden soll() aufrufen, wenn zu sehen Alles wurde ordnungsgemäß abgeschlossen.

$("#myDiv").fadeOut().load("www.someurl.com", function(response, status, xhr) { 
    if (status == "error") { 
     // handle error 
    } 
    else 
    { 
     $(this).fadeIn(); 
    } 
}); 
+0

Ist dies, weil die „Last“ async ist und die anderen Maßnahmen werden weiterarbeiten? Ihre Antwort wartet auf den Aufruf von "fadeIn", nachdem die Lastberichte fertig sind, richtig? – MrChrister

+0

Ja, sobald die Ladung beendet ist, wird fadeIn() aufgerufen – hunter

5

Verwenden Sie den success Rückruf für .load(), wie folgt aus:

$("#myDiv").fadeOut().load('www.someurl.com', function() { 
    $(this).fadeIn(); 
}); 
1

Sie das Verblassen in der Last Callback-Funktion aufgrund der asynchronen Natur von AJAX tun müssen.

9
$("#myDiv").fadeOut(1000, function() { 
    $("#myDiv").load("www.someurl.com", {limit: 25}, function(){ 
     $("#myDiv").fadeIn(); 
    }); 
}); 

Die Grenze gibt an, wie lange auf eine Antwort zu warten, in dem Ladeaufruf

Verwandte Themen