如何使用Backbone.Paginator.js运行多个实例?

Ste*_*eve 39 javascript jquery backbone.js underscore.js infinite-scroll

我试图Backbone.Paginator.js在同一页面上运行多个app(多个paginator实例).

我创建了一个测试页面.(导航到backbone.paginator/examples/netflix-infinite-paging).

我保留了代码app.js和创建app2.js,这是一个克隆,app.js但所有的JavaScript代码都位于一个文件中,应用程序已重命名为app2.

两个实例在第一次加载页面时起作用,但后续请求/刷新只加载app2.js的数据.

是否可以在同一页面上运行多个实例?

  • 我有兴趣使用自动分页(无限/无限滚动)所以我试图使用保罗爱尔兰语,jQuery Infinite Scroll plugin但我无法让它工作.
  • 我正在启动插件来运行文档就绪(这不起作用,如预期的那样),但也运行app2的ResultView中的代码,这也不起作用.

关于如何获得自动分页无限滚动解决方案的任何想法?


更新:在跨不同浏览器进行进一步测试后,似乎问题可能是缓存问题/差异.例如,在Safari中,它在刷新页面时有时(随机)工作.我不知道如何调试.有任何想法吗?

Jea*_*ete 1

问题: 1- 您是否也在代码库中包含 jQuery Javascript 框架依赖项?2-我已经下载了zip文件,在本地Xammp上运行它,它似乎是下载的演示而不是测试页,您能否从问题所附的压缩文件中确认哪个页面是您的测试页?3-你能在jsfiddle中创建一个模型(以防发生一些服务器端代码)吗?4-为无限滚动jquery插件提供的链接已损坏,它应该是: https: //github.com/joneath/infiniScroll.js

如果您想让 jQuery 分页器插件独立,您可能还需要考虑容器元素来触发它

....

从建议的链接来看,我认为我们应该尝试一下。否则,您可能想创建一个 cookie 或其他东西,以便浏览器记住多个实例上对插件的更改。以下是一些想法?

1#

          Backbone.InfiniScroll(collection, **options**)
Run Code Online (Sandbox Code Playgroud)

渲染 Backbone 视图后实例化一个新的 InfiniScroll 对象。

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

this.render();
this.infiniScroll = new Backbone.InfiniScroll(this.collection, {success: this.appendRender});
Run Code Online (Sandbox Code Playgroud)

} )};

2# 从选项菜单一目了然

            target: $(window), 
Run Code Online (Sandbox Code Playgroud)

也许我们应该尝试:

  $(body).find('#container1'),
Run Code Online (Sandbox Code Playgroud)

-或者-

 $(window).children('div').hasClass('container'),
Run Code Online (Sandbox Code Playgroud)

只是一些想法,没有亲自尝试过-

3# 您可能希望将 (1) 设为 javacript 函数,并根据类或其 id 触发它,以初始化所需容器上的滚动。

这就是我快速浏览后能想到的所有想法,但如果有帮助或至少给出一些方向,请随时回复。

4# 另一个想法是 myView 可以是 Javascript 中带有时间戳 id 的变量,这样您就可以确保唯一性,并且由于您正在调用 new,因此您可以为您的视图运行多个插件实例。