7
votes

.ajaxstart et .ajaxstop ne tirant pas

Quelqu'un peut-il m'aider s'il vous plaît à comprendre pourquoi cela ne fonctionne pas? Le chargement.gif apparaît alors que l'AJAX .LLOAD Chargement de la page, mais ne disparaît jamais. Cela me conduit à croire que ni les fonctions .ajaxstart ni les fonctions .ajaxstop ne sont appelées (parce que cela ne la cache pas initialement non plus).

tia! P>

Le CSS: P>

<script type="text/javascript">
        $(document).ready(function()
            {
                $('#loadingDiv')
                    .hide()
                    .ajaxStart(function() {
                        $(this).show();
                    })
                    .ajaxStop(function() {
                        $(this).hide();
                    })
                ;
                $("#results").load("i/getAllInfo.class.php"); return false;
            };
    </script>


0 commentaires

3 Réponses :


3
votes

Ne pas la chaîner à LoadingDiv Code>.

Essayez cela à la place: P>

$.ajaxStart(function() {
   $('#loadingDiv').show();
});

$.ajaxStop(function() {
   $('#loadingDiv').hide();
});


0 commentaires

2
votes

Vous n'avez pas besoin de retourner false de la fonction prête du document, mais vous devez ajouter la parenthèse de fermeture) comme celle-ci xxx

Votre URL "i / getallinfo.class.php" semble mal.

essayez de commenter $ (this) .hide () dans le .ajaxstop () comme ceci: xxx

parce que c'est possible Pour montrer si peu de temps que vous ne le verrez pas.

Heres un violon pour vous: http://jsfiddle.net/grsrt/11/


1 commentaires

Ça marche maintenant. Pour une raison quelconque, j'ai un moment difficile en train de vous assurer que j'ai fermé toutes les parenthèses et les crochets bouclés. Merci beaucoup!



7
votes

Je sais que c'est une vieille question, mais je viens de fixer ma propre occurrence de ce problème, donc je pose ma solution: vérifiez essentiellement votre JavaScript pour des exceptions ou des erreurs de syntaxe.

des commentaires, cela ressemble à votre problème a été causé par une erreur de syntaxe. Pour moi, j'avais une exception dans mon gestionnaire Ajaxsuccess, qui empêchait Ajaxstop de tirer. Ensuite, Ajaxstart n'entraînerait pas les appels Ajax ultérieurs, car Ajaxstart ne tire que sur le premier appel Ajax d'un lot. JQuery n'a jamais reçu d'ajaxstop, alors pensait que le lot était toujours en marche.


1 commentaires

Exactement. Une exception dans le collège de réussite empêchait mon ajaxstop de tirer.