.ajaxStart и .ajaxStop не запускаются - PullRequest
6 голосов
/ 07 июля 2011

Может кто-нибудь, пожалуйста, помогите мне понять, почему это не работает?Loading.gif появляется, когда ajax .load загружает страницу, но никогда не исчезает.Это заставляет меня поверить в то, что ни функции .ajaxStart, ни .ajaxStop не вызываются (потому что он также не скрывает их изначально).1006 *

JQuery:

<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>

Ответы [ 3 ]

6 голосов
/ 29 сентября 2011

Я знаю, что это старый вопрос, но я только что исправил свое возникновение этой проблемы, поэтому я публикую свое решение: в основном, проверьте ваш JavaScript на наличие исключений или синтаксических ошибок.

Судя по комментариям, ваша проблема вызвана синтаксической ошибкой. Для меня у меня было исключение в моем обработчике ajaxSuccess, которое препятствовало запуску ajaxStop. Тогда ajaxStart не будет запускаться при последующих вызовах ajax, потому что ajaxStart запускается только при первом вызове ajax пакета. jQuery никогда не получал ajaxStop, поэтому он думал, что пакет все еще работает.

3 голосов
/ 07 июля 2011

Не связывайте это с loadingDiv.

Попробуйте вместо этого:

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

$.ajaxStop(function() {
   $('#loadingDiv').hide();
});
2 голосов
/ 07 июля 2011

вам не нужно возвращать false из функции готовности документа, но вам нужно добавить закрывающую скобку) вот так

     $("#results").load("i/getAllInfo.class.php"); return false;
 }); //<----- you need the )

Ваш URL "i / getAllInfo.class.php" выглядит неправильно.

попробуйте закомментировать $ (this) .hide () в .ajaxStop () следующим образом:

.ajaxStop(function() {
     //$(this).hide();
})

Потому что он может показываться так мало времени, что вы его не увидите.

вот тебе скрипка: http://jsfiddle.net/GrsRT/11/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...