我正在为网站使用无限滚动 jquery 插件 ( https://github.com/paulirish/infinite-scroll )
一切都很好,除了我的页面是一个搜索所以......发生的事情是:
1)您进入页面,浏览器会自动定位您并返回您周围的项目列表(例如条形图)...需要无限滚动以避免该列表的分页。一切正常,直到这里......除了我可以到达“无限页面的末尾”并且插件“解除绑定(bind)”本身与滚动的事实。
2) 现在....当您想在输入文本中手动插入地址时,您可以随意执行...您写下您的地址,然后按 Enter...并使用 ajax (没有页面刷新)...我会查找纬度/经度,找到地址,更改无限滚动的导航链接...并且,我感觉很愚蠢,但我无法弄清楚“重新激活”或“重新绑定(bind)”插件到事件的方法...所以我的“新搜索结果”没有新的“无限滚动”实例...
(页面“split”正确并正确返回尝试更改“page=NUMBER”的json)
这是控制台中发生的情况:
["math:", 0, 468]
jquery.infinitescroll.min.js:20["heading into ajax",
Array[2]
0 : "/ajax/getCoworkings/?page="
1 : "&latitude=52.5234051&longitude=13.4113999&distance=12"
length : 2
__proto__ : Array[0]
]
jquery.infinitescroll.min.js:20["Using JSON via $.ajax() method"]
jquery.infinitescroll.min.js:20["Error", "end"]
jquery.infinitescroll.min.js:20["Binding", "unbind"]
“取消绑定(bind)”后,我无法再次绑定(bind)它,因此我的下一个搜索结果会无限滚动........
最佳答案
infinitescroll 通过 $.data
将其所有实例数据存储在元素本身上,因此删除该实例数据是完全重置Infinitescroll 的唯一可靠方法。
这两行应该能够彻底摧毁无限滚动。
$elem.infinitescroll('destroy');
$elem.data('infinitescroll', null);
//现在无限滚动可以正常重新初始化,而不会因前一个实例而出现任何冲突或问题。
请注意,截至 2012 年 6 月,之前的答案均不适用于最新版本的 jquery.infinitescroll (v2.0)
关于jquery无限滚动 "reset",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7936270/