7
votes

la charge ne déclenche pas le gestionnaire complet AjaxSetup sur terminer

J'ai xxx

sur la charge de la page pour définir l'animation de chargement pour tous mes appels Ajax. Cela fonctionne parfaitement, à l'exception des appels de charge (). Pour des charges uniquement, la Beforesend est déclenchée et complète ne s'appelle jamais, ce qui donne une animation montrant qui ne disparaît jamais.

aucune idée?


0 commentaires

3 Réponses :


1
votes

Le $. Charger manuel dit:

... il est à peu près équivalent à $ .get (URL, données, succès) sauf que c'est une méthode plutôt que la fonction globale et il a une implicite implicite Fonction de rappel .

Il semblerait que $. Charger La fonction de rappel implicite de remplace le rappel de dans votre $. AjaxSetUp . Le $. AjaxSetUp Documentation dit:

Tous les appels AJAX ultérieurs en utilisant n'importe quel la fonction utilisera les nouveaux paramètres, Sauf non remplacé par l'individu appels, jusqu'à la prochaine invocation de $ .ajaxsetup ().

Je suppose que la solution serait de remplacer votre $. Charger appels avec $ .ajax ). Vous pouvez également essayer d'utiliser succès à la place.


0 commentaires

2
votes

Ajout de succès Correction du problème, merci (je peux jurer que je l'ai essayé avant) xxx

:)


2 commentaires

Et si l'appel Ajax donne une erreur (c'est-à-dire http 401). Le gestionnaire de succès est-il appelé aussi?


Je pense que non, mais complète devrait être appelée.



5
votes

Selon http://bugs.jquerery.com/ticket/4086#Comment: 4 , la méthode "correcte" serait la suivante:

$(document).ajaxSend(function(event, jqXHR, settings) {
    $('#general-ajax-load ').fadeIn();
});

$(document).ajaxComplete(function(event, jqXHR, settings) {
    $('#general-ajax-load ').fadeOut();
});


0 commentaires