39

Backbone.Paginator.js同じページで複数のアプリ (ページネーターの複数のインスタンス) を実行するために使用しようとしています。

テストページを作成しました。( に移動しbackbone.paginator/examples/netflix-infinite-pagingます)。

app.jsand createのコードはそのまま残しましたがapp2.js、これはのクローンですapp.jsが、すべての JavaScript コードは 1 つのファイルにあり、アプリの名前は app2 に変更されています。

ページの最初の読み込みでは 2 つのインスタンスが機能しますが、その後の要求/更新では app2.js のデータのみが読み込まれます。

同じページで複数のインスタンスを実行することは可能ですか?

  • 自動ページング (無限/無限スクロール) の使用に興味があるため、ポール アイリッシュを使用しようとしましjQuery Infinite Scroll pluginたが、動作させることができません。
  • 私はプラグインをドキュメントの準備ができた状態で実行するように開始していますが (これは期待どおりに動作しません)、app2 の ResultView でコードを実行していますが、これも同様に動作しません。

自動ページングの無限スクロール ソリューションを取得する方法についてのアイデアはありますか?


更新:さまざまなブラウザーでさらにテストした後、問題はキャッシュの問題/違いにあるようです。たとえば、Safari では、ページを更新するときに (ランダムに) 動作することがあります。それをデバッグする方法がわかりません。何か案は?

4

1 に答える 1

1

質問: 1- jQuery Javascript フレームワークの依存関係もコードベースに含めていますか? 2- zip ファイルをダウンロードし、Xammp でローカルに実行したところ、テスト ページではなくダウンロードされたデモのようです。質問に添付された圧縮ファイルから、どのページがテスト ページであるかを確認できますか? 3- jsfiddle でモックアップを作成できますか (サーバー側のコードが発生している場合)。4- 無限スクロール jquery プラグインに提供されているリンクが壊れています。https ://github.com/joneath/infiniScroll.js のはずです。

jQuery paginator プラグインを独立させたい場合は、container 要素も考慮してトリガーした方がいいかもしれません

....

提案されたリンクから、これを試してみるべきだと思います。それ以外の場合は、ブラウザーが複数のインスタンスでプラグインへの変更を記憶できるように、Cookie などを作成することをお勧めします。ここにいくつかの考えがありますか?

1#

          Backbone.InfiniScroll(collection, **options**)

Backbone ビューがレンダリングされた後、新しい InfiniScroll オブジェクトをインスタンス化します。

myView = Backbone.View.extend({
  initialize: function(){
    _.bindAll(this, "render");

this.render();
this.infiniScroll = new Backbone.InfiniScroll(this.collection, {success: this.appendRender});

} )};

2# オプションメニューの概要

            target: $(window), 

おそらく試してみるべきです:

  $(body).find('#container1'),

-また-

 $(window).children('div').hasClass('container'),

ほんのいくつかのアイデアで、自分で実験したことはありません-

3# (1) を javacript 関数にして、目的のコンテナーのスクロールを初期化するために、クラスまたはその ID に基づいてトリガーすることができます。

ざっと見て思いついたアイデアはこれだけですが、参考になるか、少なくとも何らかの方向性があれば、遠慮なく返信してください。

4# もう 1 つの考えは、myView は Javascript のタイムスタンプの ID を持つ変数にすることができるということです。そうすることで、一意性を確保でき、new を呼び出すので、ビューに対してプラグインの複数のインスタンスを実行できます。

于 2012-12-29T18:43:52.197 に答える