在找不到.HTML文件时隐藏加载栏

时间:2012-03-18 20:25:55

标签: javascript loading

我有以下代码查找下一个连续页码,并在用户点击屏幕底部后将其加载到页面底部。

加载div向下滑动,一旦完成就会加载和向上...它被设置为"显示:无"默认情况下

我需要的是一行代码,它基本上隐藏了#loading div,如果找不到更多的页面来加载..." var url =" page" + nextpage +" .html";"找到新页面...标题为'页面2.html,page3.html'等等。

任何帮助将不胜感激。我认为这很容易但我无法在任何地方找到解决方案......

alreadyloading = false;
nextpage = 2;

$(window).scroll(function() {
if($(window).scrollTop() + $(window).height() == $(document).height()) {
    if (alreadyloading == false) {
        $("#loading").slideDown();
        var url = "page"+nextpage+".html";
        alreadyloading = true;

        $.post(url, function(data) {
            $('#newcontent').children().last().after(data);
            alreadyloading = false;
            nextpage++;
            $("#loading").slideUp();
        });

    }
}
});

1 个答案:

答案 0 :(得分:1)

如果没有这样的文件,那么AJAX请求将失败,因此您可以从“失败”处理程序中执行所需操作。为了能够指定,您可以使用$.post从使用更具可配置性的$.ajax,这为您提供了所有必要的选项:

$.ajax({
    type: 'POST',
    url: url,
    success: function(data) {
        $('#newcontent').children().last().after(data);
        nextpage++;
    },
    complete: function() {
        alreadyloading = false;
        $("#loading").slideUp();
    }
});

complete回调包含无论请求发生什么情况都将执行的代码; success回调将在complete之前执行,但仅在请求成功时执行。