什么" loading" $ .post()的方法?

时间:2017-09-21 16:05:00

标签: jquery post callback

我使用如下的$ .post方法在页面中加载更多产品。但是据我所知 从https://api.jquery.com/jquery.post/页面看,似乎没有办法让“加载”#39;正在加载数据。

还有其他方法可以显示loading吗?

$(document).ready(function(){                
    $(window).bind('scroll',fetchMore);
});

fetchMore = function (){
    var productClass = $("#content > .row > div.product-layout").prop("class");

    if (( $(window).scrollTop() >= $(document).height()-$(window).height()-300 ) && (page <= total_pages)){
        lastpage = (page == total_pages) ? 1 : 0;
        page++;

        $('#moreHolder').text('loading');

        $(window).unbind('scroll',fetchMore);

        $.post('index.php?route=product/productx' + _url + '&page=' + page + '&productClass=' + productClass,
        function(data) {
           if(data.length>10){
                $(data).insertBefore($('#moreHolder'));
                $(window).bind('scroll',fetchMore);
           }
        })
        .always(function() {
            $('#moreHolder').text('');
        });
        ;
    }
}

1 个答案:

答案 0 :(得分:-1)

是的,您可以在请求开始时显示加载消息

$(document).ready(function(){                
    $(window).bind('scroll',fetchMore);
});

fetchMore = function (){
    var productClass = $("#content > .row > div.product-layout").prop("class");

    if (( $(window).scrollTop() >= $(document).height()-$(window).height()-300 ) && (page <= total_pages)){
        lastpage = (page == total_pages) ? 1 : 0;
        page++;

        $('#moreHolder').text('loading');

        $(window).unbind('scroll',fetchMore);
        //Here show the message of loading...
        $.post('index.php?route=product/productx' + _url + '&page=' + page + '&productClass=' + productClass,
        function(data) {
           if(data.length>10){
                //And then here hide the message shown before
                $(data).insertBefore($('#moreHolder'));
                $(window).bind('scroll',fetchMore);
           }
        })
        .always(function() {
            $('#moreHolder').text('');
        });
        ;
    }
}

基本上你必须在请求开始之前显示消息,并在请求结束或失败时隐藏它

希望这会有所帮助:)