0

jQuery Infinite Ajax Scroll プラグインを開発サイトに統合することにある程度成功しました。最初は左側のスレッド リストで、2 番目は個々のトピックをロードするときに 2 回使用されますが、2 番目のiasインスタンスで問題が発生しています。ここ。

基本的に、トピックのコンテンツは $.get を介して読み込まれ、ページにレンダリングされます。次にsetupThreadDetailDownwardScroll()、ias のインスタンスを作成する JS でトリガーします。

var iasDetail = jQuery.ias({
    container:  "#reply-holder",
    item:       ".post",
    pagination: ".threaddetail-pagination",
    next:       ".load-next-inner-link a",
    delay:      2000,
  });

  if (iasDetail.extension) {
    iasDetail.extension(new IASPagingExtension());
    iasDetail.extension(new IASTriggerExtension({
      text: 'More Replies', 
      html: '<div class="scroll-pager"><span>{text}</span></div>',
      offset: 10,
    }));
    iasDetail.extension(new IASNoneLeftExtension({html: '<div class="scroll-message"><span>No more replies</span></div>'}));
    iasDetail.extension(new IASHistoryExtension({
        prev: '.load-previous-inner-link a',
    }));
  }

  iasDetail.on('load', function() {
    $('#reply-holder').append(scrollLoading);
  })

  iasDetail.on('rendered', function() {
    $('.scroll-loading').remove();
    iasDetail.unbind();
  })

しかし、問題は、最初にロードしたトピックが何であれ、これが機能することです。最初のスレッドでページネーションが機能しますが、次のスレッドを開いたときにアンカー リンクにフォールバックします。

したがって、この新しいコンテンツが挿入されたら、ias を再バインドする必要があると考えました。これが、 にunbind()呼び出しを追加した理由であり、別のスレッドがロードされるたびrenderedに再呼び出しします。setupThreadDetailDownwardScroll()これもうまくいきません。

ここに正しい手順はありますか?

4

1 に答える 1

0

jQuery.ias(...)のスクロールイベントにバインドするものを使用してい$(window)ます。あなたの場合、おそらくオーバーフロー div にバインドする必要があります。そのため、次のように scrollContainer を指定する必要があります。

$('#scrollContainer').ias(...)

編集:

あなたのコメントに基づいて、私はそれをもう一度見て、答えを見つけたかもしれません. jQuery.ias({...});IASを呼び出すと、セットアップが開始され、初期化されるまで待機$(document).readyします。関数で IAS を初期化するとしますsetupThreadDetailDownwardScroll。次のコードを使用して、IAS を自分で初期化することができます。

 iasDetail.initialize();
于 2014-05-12T19:59:55.153 に答える