1

デモのように終わったら、ページネーターを削除する必要があります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();
    });

しかし、このコードは機能しません。デモでInfiniteScrollのバージョンは1.5.100504であると述べましたが、ここでダウンロードした最新のバージョンは2.0b2.110713です。では、何か助けてください。

多分これは私を助けることができます:

州: {
    isDuringAjax:false、
    isInvalidPage:false、
    isDestroyed:false、
    isDone:false、//アーカイブを最後まで通過する場合。
    isPaused:false、
    currPage:1
  }、

4

4 に答える 4

2

サイトから 404 http ステータス コードが返されることはないため、次の行は機能しません。

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

「ロードする投稿はこれ以上ありません」というメッセージは、無限スクロール初期化の「finishedMsg」プロパティから来ています。

追加する場合

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

設定の読み込みプロパティに:

$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'
        },

それはおそらくあなたが必要とすることをするはずです。ただし、このバージョンのプラグインは十分に文書化されていないため、何とも言えません。

于 2012-07-19T18:31:50.573 に答える
1

オプションを使用errorCallbackできます:-

$container.infinitescroll({
    errorCallback: function(){ 
        $('#load-more').remove()
    }
});
于 2016-02-09T09:21:22.040 に答える
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="">');

開発版では155行目あたりです。これは基本的に、コールバックなどを破壊することなくロードボックスをショートさせます.

于 2012-12-16T22:07:28.293 に答える
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>"
  ...
  }
}
于 2013-06-25T11:17:38.133 に答える