39

我正在尝试Backbone.Paginator.js在同一页面上运行多个应用程序(分页器的多个实例)。

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

我保留了 forapp.js和 create的代码app2.js,这是一个克隆,app.js但所有 javascript 代码都位于一个文件中,并且该应用程序已重命名为 app2。

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

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

  • 我对使用自动分页(无限/无尽滚动)很感兴趣,所以我尝试使用 Paul Irish 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 分页器插件独立,你可能需要考虑容器元素来触发它

……

从建议的链接中,我认为我们应该对此进行试验。否则,您可能想为浏览器创建一个 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# 另一个想法是 myView 可以是 Javascript 中具有时间戳 id 的变量,这样您可以确保唯一性,并且由于您正在调用 new,那么您可以为您的视图运行多个插件实例。

于 2012-12-29T18:43:52.197 回答