无限滚动我们完成后删除分页符

时间:2012-07-19 18:13:30

标签: jquery infinite-scroll

我需要在演示http://www.infinite-scroll.com/trigger.html

时完成删除分页器
    // remove the paginator when we're done.
    $(document).ajaxError(function(e,xhr,opt){
      if (xhr.status == 404) $('a#next').remove();
    });

但是这段代码不起作用。我已经提到在演示版中Infinite Scroll的版本是1.5.100504,但我在这里下载的最新版本是2.0b2.110713那么,有什么帮助吗?

也许这可以帮助我:

state: {
    isDuringAjax: false,
    isInvalidPage: false,
    isDestroyed: false,
    isDone: false, // For when it goes all the way through the archive.
    isPaused: false,
    currPage: 1
  },

4 个答案:

答案 0 :(得分:2)

您的网站永远不会发回404 http状态代码,因此该行永远不会有效:

if (xhr.status == 404) jQuery('#load-more').find('.text').html('No more posts to load.').end().delay(2000).fadeOut();

“无需加载帖子”消息来自您的infinitescroll初始化的“finishedMsg”属性。

如果您要添加

finished: function() {
    if (this.options.state.isDone) {
        $('#load-more').remove();
    }
},

到config的加载属性:

$container.infinitescroll({
            navSelector: '#nav-pagination-load-more',
            nextSelector: '#nav-pagination-load-more .next',
            itemSelector: '.hentry',
            loading: {
                selector: '#load-more',
                finishedMsg: 'No more posts to load.',
                img: 'http://cdn.moozpaper.com/lucidpress/wp-content/themes/lucidpress/images/loading_small.gif',
                // like so: ==============================
                finished: function() {
                    if (this.options.state.isDone) {
                        $('#load-more').remove();
                    }
                }, 
                msgText: ''
            },
            behavior: 'local'
        },

它可能应该做你需要的。很难说,因为这个版本的插件没有很好的记录。

答案 1 :(得分:1)

你可以在开始代码中插入它,但我只是直接编辑它。

您会看到以下内容:

opts.loading.start = opts.loading.start || function() {

添加此内容     opts.loading.msg = $('');

制作

opts.loading.start = opts.loading.start || function() {
$(opts.navSelector).hide();
opts.loading.msg = $('<div id="">');

在dev版本上它就在第155行附近。这基本上会在没有破坏回调等的情况下使加载框短路。

答案 2 :(得分:1)

您可以在finishedMsg选项中添加要执行的脚本以进行加载:

$container.infinitescroll({
  ...
  loading: {
    finishedMsg: "<div class='infinite-scroll-finished'>No more articles to load!</div>
                  <script type='text/javascript'> $('#infinity-start').hide(); </script>"
  ...
  }
}

答案 3 :(得分:1)

您可以使用errorCallback选项: -

$container.infinitescroll({
    errorCallback: function(){ 
        $('#load-more').remove()
    }
});