2012-03-23 10 views
0

問題は、infinitescrollプラグインが最後の有効なページングに達していて、もう一度スクロールして最後の有効なコンテンツを再度プルすることです。Infinite-scroll jQueryプラグインが最後のページに移り続ける

つまり私はコンテンツの3つの有効なページ分割ページがある場合、

ページ/ 1 =リターンページ1コンテンツ ページ/ 2 =リターンページ2コンテンツ ページ/ 3 =リターンページ3コンテンツ ページ/ 4 =リターンページ3コンテンツ ページ/ 4 =戻り、3ページコンテンツ ページ/ 4 =戻り、3ページコンテンツ ページ/ 4 =戻り、3ページコンテンツ 等...

私はページ/ 99にそれを置く場合それでもページ3のコンテンツが返されます。

オンラインで見ると、存在しないページングされたページを呼び出そうとするとバックエンドが404を返すように設定する必要があります。

私はこれで2つの問題を持っている:

1)私のクライアントのサイトは、彼らがすべてで404または非常に多くのバックエンドへのアクセス)

2を与えない(SquareSpace.comでホストされています)たとえ私がアクセスしたとしても、それを修正する方法は全くわかりません。誰もが私は非常にGREATFULだろう助けることができれば

https://github.com/paulirish/infinite-scroll/issues/49

:ここ

は、これが問題であることを説明する記事へのリンクです!

答えて

0

私はそうのようinfinite-scrollコールバックにカウンタを追加することによって、問題を修正:

var total = $j(".pagination a:last").html(); 
var pgCount = 1; 
var numPg = total; 

    // jQuery InfiniteScroll Plugin. 
    container.infinitescroll({ 
     navSelector : '.pagination', 
     nextSelector : '.pagination a:first', 
     itemSelector : '.journal-entry-wrapper', 
     animate: true, 
     loading: { 
      finishedMsg: 'No more content to load.', 
      img: 'http://i.imgur.com/6RMhx.gif' 
     } 
    }, 
    // Trigger Masonry as a callback. 
    function(newElements) { 
     pgCount++; 

     if(pgCount == numPg) { 
      $j(window).unbind('.infscr'); 
      container.masonry('reload'); 
      container.append(newElements).masonry('appended', newElements, true); 
      $j('#infscr-loading').find('em').text('No more content to load.'); 
      $j('#infscr-loading').animate({ 
       opacity: 1 
      }, 200); 
      setTimeout(function() { 
       $j('#infscr-loading').animate({ 
        opacity: 0 
       }, 300); 
      }); 
     } else { 
      loadPosts(newElements); 
     } 
    }); 

}); 

function loadPosts(newElements) { 
    // Hide new posts while they are still loading. 
    var newElems = $j(newElements).css({ opacity: 0 }); 
    // Ensure that images load before adding to masonry layout. 
    newElems.imagesLoaded(function() { 
     // Show new elements now that they're loaded. 
     newElems.animate({ opacity: 1 }); 
     container.masonry('appended', newElems, true); 

     // Animate opaque post covers on hover. 
     $j(newElems).hover(function() { 
      $j(this).find('.postCover').stop(true, true).fadeOut(200); 
     }, function() { 
      $j(this).find('.postCover').stop(true, true).fadeIn(200); 
     }); 
    }); 
} 
+0

これは他の誰かを役に立てば幸いです。ちょうど情報のためにこれはSquareSpaceでホスティングしていたクライアントのためでした。 –

関連する問題