我在drupal网站上手动实现了无限滚动jquery插件。我遇到了一个包含暴露过滤器的视图的问题。无限滚动只是保持附加相同的数据。
例如:如果在页面加载时我们的下一页是“page = 2”而最后一页是5,在这种情况下它只是将“page = 2”的结果附加到当前结果。
“nextSelector”(.pager-next)仅指向drupal中的下一页。因此脚本反复加载下一页(例如:第2页)。
$container.infinitescroll({
navSelector : \'div.item-list ul.pager\', // selector for the paged navigation
nextSelector : \'div.item-list li.pager-next > a\', // selector for the NEXT link (to page 2)
itemSelector : \'.item\', // selector for all items you\'ll retrieve
bufferPx: 300,
pixelsFromNavToBottom: \'ul.pager\',
loading: {
msgText: \''.t('Loading More...').'\',
finishedMsg: \''.t('No more posts.').'\',
},
state: {
isDuringAjax: false,
isInvalidPage: false,
isDestroyed: false,
isDone: false, // For when it goes all the way through the archive.
isPaused: false,
currPage: 0
},
答案 0 :(得分:1)
Drupal没有将页面编号为wordpress(无限滚动初始使用),如果请求页面不存在(最接近猜测),其分页系统会返回结果。
添加此设置:
$container.infinitescroll({
(...)
maxPage : 10 // your pager max pages or see below
state: {
currPage: 0
},
(...)
如果你不能将最大页面设置为javascript,你可以" hack"如果页面超出界限,Drupal就不会返回任何结果:
$perPage = 10;
$total = count($results);
$qs_page = isset($_GET['page']) ? $_GET['page'] : 0;
$page = pager_default_initialize($total, $perPage, 0);
if ($qs_page > $page) {
//out of bounds !!!
$perPage=0;
}
$offset = $perPage * $page;
$results = array_slice($results, $offset, $perPage,TRUE);
答案 1 :(得分:0)
该问题与无限滚动插件无关。这是由Drupal生成的url的一个问题。