ric*_*cit 13 ajax jquery infinite-scroll jquery-infinite-scroll
我正在为网站使用无限滚动jquery插件(https://github.com/paulirish/infinite-scroll)
一切都很好,除了我的页面是一个搜索所以......发生的是:
1)你进入页面,浏览器自动定位你并返回你周围的项目列表(例如条形图)...需要无限滚动以避免对此列表进行分页.一切都有效,直到这里...除了我可以到达"无限页末尾"并且插件从滚动中"解除绑定"的事实.
2)现在....当你想在输入文本中手动插入一个地址时,你可以自由地做...你写下你的地址,然后按下输入...和ajax(没有页面刷新).. .i会寻找lat/lon,找到地址,更改无限滚动的导航链接....而且,我觉得愚蠢,但我无法想出一种方法来"重新激活"或"重新绑定"活动的插件......所以我的"新搜索结果"没有一个新的"无限卷轴"实例......
(页面"拆分"正确并正确返回json尝试更改"page = NUMBER")
这是控制台中发生的事情:
["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"]
Run Code Online (Sandbox Code Playgroud)
在"unbind"之后,我无法再绑定它,因此在我的下一个搜索结果中有无限滚动........
fis*_*920 27
infinitescroll将所有实例数据存储在元素本身上$.data
,因此删除该实例数据是完全重置infinitescroll的唯一可靠方法.
这两行应该可以完全摧毁infinitescroll.
$elem.infinitescroll('destroy');
$elem.data('infinitescroll', null);
Run Code Online (Sandbox Code Playgroud)
//现在无限滚动可以正常重新初始化,而不会在前一个实例中出现任何冲突或残骸.
请注意,截至2012年6月,以前的答案都不适用于我最新版本的jquery.infinitescroll(v2.0)
解决了。
我已经添加:
if (xhr == 'destroy') {
$.removeData(this.element[0]);
}
Run Code Online (Sandbox Code Playgroud)
在功能上
_error: function infscr_error(xhr) {
Run Code Online (Sandbox Code Playgroud)
在228行。
可能这不是最好的方法,但这正是我所需要的。
而我现在所做的基本上是您的建议:
1。
$("#myelement").infinitescroll("destroy");
Run Code Online (Sandbox Code Playgroud)
2。
$("#myelement").infinitescroll(WHATEVER_SETTINGS);
Run Code Online (Sandbox Code Playgroud)
...无需修改“ pathParse”值,
但这是因为我
之前使用jQuery 修改了选择器(next / nav)。
归档时间: |
|
查看次数: |
15542 次 |
最近记录: |