我正在使用无限-ajax-scroll (https://github.com/webcreate/infinite-ajax-scroll)插件带过滤。我有过滤器使用无限滚动但我的问题是,每当滚动得到一个过滤器的结果的结束它将不再滚动,即使选择了另一个过滤器。因此,我需要在选择过滤器时重置infinate滚动但我在文档中找不到如何重置这个并且对JQuery不太好,所以无法解决这个问题。
我还有一些不需要iniliniate滚动的过滤器,还需要一种方法来禁用它们。
$('.filter a').click(function() {
//reset scroll somehow
//setTimeout("jQuery.ias({container: '#container'})",1000);
var $this = $(this);
var URL = $this.attr('href');
loadMoreItems(URL, $this);
});
return false;
});
jQuery.ias({
container: '#container', // main container where data goes to append
item: '.element', // single items
pagination: '.paginate', // page navigation
next: '.paginate a', // next page selector
loader: '<img src="public/img/ajax-loader.gif"/>',
noneleft: 'No more discounts for your selection',
triggerPageThreshold: '10',
trigger: "Load more items",
history: false,
thresholdMargin: -350
});
答案 0 :(得分:4)
其他have had the same issue as you;根据作者的说法,目前无法彻底重新初始化IAS。
所以你的选择似乎是
1)按removing the event handlers硬重置插件,并在每次更改过滤器时再次调用jQuery.ias({...})
2)切换到另一个库。该错误报告wrote his own中的用户 - 也许他的解决方案对您有用
答案 1 :(得分:2)
就像janfoeh所说,没有什么可以正确地重新初始化插件。你应该从窗口取消绑定滚动并再次调用元素上的init。
我建议你将初始化包装成一个函数,以便重新初始化。
$('.filter a').click(function() {
$(window).unbind('scroll');
initscroll();
});
function initscroll(){
jQuery.ias({
container: '#container', // main container where data goes to append
item: '.element', // single items
pagination: '.paginate', // page navigation
next: '.paginate a', // next page selector
loader: '<img src="public/img/ajax-loader.gif"/>',
noneleft: 'No more discounts for your selection',
triggerPageThreshold: '10',
trigger: "Load more items",
history: false,
thresholdMargin: -350
});
}
initscroll();
所以你必须在加载和过滤时调用initscroll。
答案 2 :(得分:2)
从无限Ajax Scroll 版本2开始,有一种新方法可以解决此类问题。调用新方法 destroy() unbind()的别名,您将从任何窗口或文档事件中取消绑定IAS。之后你可以重新绑定IAS对象。
$('.filter a').click(function() {
setTimeout(function() {
ias.destroy();
}, 1000);
var $this = $(this);
var URL = $this.attr('href');
loadMoreItems(URL, $this);
ias.bind();
});
类似的东西,没有测试。您可以在http://infiniteajaxscroll.com/docs/methods.html
上查看此方法