2010-04-30 6 views
12

J'utilise JQuery et ce que je veux arriver est.jquery fadeout, charger, fadein

Le fondu disparaît à l'aide de la commande fadeOut. Il charge ensuite le contenu d'une URL en utilisant la commande load. Ensuite, une fois le contenu chargé, il disparaît en utilisant la commande fadeIn.

Le code que j'ai est:

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

Toutefois, cela ne fonctionne pas. Il clignote puis se charge puis se charge. Je pense que le problème est que les évanouissements se produisent avant que la charge soit complète.

Que dois-je faire

Merci

Répondre

11

vous pouvez utiliser la fonction de rappel load() comme ceci:

vous pouvez utiliser l'état de la charge() pour voir si tout a été terminé correctement.

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

Est-ce parce que la « charge » est async et les autres actions continuera à travailler? Votre réponse attendra d'appeler "fadeIn" après que les rapports de chargement soient faits, correct? – MrChrister

+0

oui, une fois le chargement terminé, il appellera fadeIn() – hunter

5

Utilisez le rappel pour success.load(), comme ceci:

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

vous devez faire la disparition progressive de la fonction de rappel de charge en raison de la nature asynchrone d'AJAX.

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

La limite indique combien de temps le temps d'attendre une réponse à l'appel de charge

Questions connexes