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但我无法让它工作.关于如何获得自动分页无限滚动解决方案的任何想法?
更新:在跨不同浏览器进行进一步测试后,似乎问题可能是缓存问题/差异.例如,在Safari中,它在刷新页面时有时(随机)工作.我不知道如何调试.有任何想法吗?
问题: 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,因此您可以为您的视图运行多个插件实例。