2

私は MVC Web アプリケーションを作成しています。私のアプリでは、ユーザーがページを下にスクロールしているときに Ajax を使用してレコードをロードしていますが、ユーザーがページを再度下にスクロールすると完全なレコードがロードされた後、ajax ローダーの gif が再び表示されますが消えます。それは本当に迷惑です。完全なレコードがロードされた後、ローダー gif を無効にする方法はありますか。どんな助けでも大歓迎です。私のjavascriptコードはこれです:

 var page = 0;
    var _inCallback = false;
    function loadProducts() {
        if (page > -1 && !_inCallback) {
            _inCallback = true;
            page++;
            $('div#loading').html('<p><img src="/Content/ajax-loader.gif"></p>');
            $.get("/Sort/ALL/" + page, function (data) {
                if (data != '') {
                    $("#productList").append(data);
                }
                else {
                    page = -1;
                }
                _inCallback = false;
                $('div#loading').empty();
            });
        }
    }
    var dcList = true;
    $(window).scroll(function () {
        if ($(window).scrollTop() == $(document).height() - $(window).height()) {
            loadProducts();
        }
    });

注: ページを数えて状態に設定しましたが、それも機能していません。助けが必要。ありがとう

4

1 に答える 1

0

これを試して:

var page = 0;
var _inCallback = false;
  function loadProducts() {
        if (!_inCallback) {
            _inCallback = true;
            page++;
            $('div#loading').html('<p><img src="/Content/ajax-loader.gif"></p>');
            $.get("/Sort/ALL/" + page, function (data) {
                if (data != '') {
                    $("#productList").append(data);
                }
               if( page >= 24 )  {
                     //If we are done, delete the event from window, and delete the loader
                    $(window).off("scroll");
               } else {
                    //The else is only to be sure we wont have another call to the get, it shouldn't be necessary 
                    _inCallback = false;
               }
                $('div#loading').empty();
            });
        }
    }
于 2013-07-06T00:48:33.430 に答える