我使用以下javascript在多个页面上实现了无限滚动。
$(document).ready(function() {
if ($('.pagination').length) {
$(window).scroll(function() {
var url = $('.pagination .next_page').attr('href');
if (url && $(window).scrollTop() > $(document).height() - $(window).height() - 50) {
$('.pagination').text("Please Wait...");
return $.getScript(url);
}
});
return $(window).scroll();
}
});
这是放在我的application.js文件中。
我刚刚意识到我在其他页面上有一些分页链接,我不希望无限滚动但是它们被替换为"请等待..."
是否可以仅在某些页面或控制器上激活上述代码?
答案 0 :(得分:0)
为您的will_paginate
提供一个唯一的#id
,以便他们不会全部使用.pagination
,这就是其他无限卷轴附加“请等待”的原因。
示例:
<%= will_paginate @posts, :params => {:controller => 'posts', :action => 'index'}, id: "posts_pagination"%>
在这里,您还可以看到如何将will_paginate委派给某个控制器和操作。
will_paginate并不总是在添加
#id
的情况下发挥作用,所以你可能会这样做 想要尝试添加.class
代替:
<%= will_paginate @posts, :params => {:controller => 'posts', :action => 'index'}, class: "posts_pagination"%>
然后在您的application.js
中 - 将无限脚本绑定到#posts-pagination
(如果#id
)或.posts_pagination
(如果.class
)而非.pagination
{1}}:
喜爱 我使用以下javascript在多个页面上实现了无限滚动。
$(document).ready(function() {
if ($('.posts-pagination').length) {
$(window).scroll(function() {
var url = $('.posts-pagination .next_page').attr('href');
if (url && $(window).scrollTop() > $(document).height() - $(window).height() - 50) {
$('.posts-pagination').text("Please Wait...");
return $.getScript(url);
}
});
return $(window).scroll();
}
});
您可能希望根据具体情况为url
提供一个唯一变量,以便每个无限滚动都不会获取另一个无限滚动url
只需更改var url = $('.posts-pagination .next_page').attr('href');
为:
var url1 = $('.posts-pagination .next_page').attr('href');
var url2 = $('.comments-pagination .next_page').attr('href');
等等。
瞧瞧。你很高兴。