我使用mansonry和 couchbase 作为数据库的无限滚动。我的问题是 tt 在第 2 页之后加载相同的内容:这是代码示例:
第 1 页:
<div id="container">
<div class="box">Page 1 Box 1</div>
<div class="box">Page 1 Box 2</div>
<div class="box">Page 1 Box 3</div>
</div>
<nav id="page-nav">
<a href="link_to_page_2">Next/a>
</nav>
第2页:
<div id="container">
<div class="box">Page 2 Box 4</div>
<div class="box">Page 2 Box 5</div>
<div class="box">Page 2 Box 6</div>
</div>
<nav id="page-nav">
<a href="link_to_page_3">Next/a>
</nav>
第 3 页:
<div id="container">
<div class="box">Page 3 Box 7</div>
<div class="box">Page 3 Box 8</div>
<div class="box">Page 3 Box 9</div>
</div>
<nav id="page-nav">
<a href="link_to_page_4">Next/a>
</nav>
Javascript:
var $container = $('#container');
$container.imagesLoaded(function(){
$container.masonry({
itemSelector: '.box',
columnWidth: 100
});
});
$container.infinitescroll({
navSelector : '#page-nav', // selector for the paged navigation
nextSelector : '#page-nav a', // selector for the NEXT link (to page 2)
itemSelector : '.box', // selector for all items you'll retrieve
loading: {
finishedMsg: 'No more pages to load.',
img: 'http://i.imgur.com/6RMhx.gif'
}
},
// trigger Masonry as a callback
function( newElements ) {
// hide new items while they are loading
var $newElems = $( newElements ).css({ opacity: 0 });
// ensure that images load before adding to masonry layout
$newElems.imagesLoaded(function(){
// show elems now they're ready
$newElems.animate({ opacity: 1 });
$container.masonry( 'appended', $newElems, true );
});
});
当我加载它显示的页面时
第 1 页 方框 1
第 1 页 框 2
第 1 页 框 3
->滚动
第 2 页 方框 4
第 2 页 方框 5
第 2 页 方框 6
->滚动
第 2 页 方框 7
第 2 页框 8
第 2 页 方框 9
..
我的第一个想法是,第 2 页上的下一个链接再次指向第 2 页。但是当我禁用 inifinit-scroll 时,我可以使用下一个链接轻松单击 von Page 1 到 Page 2 到 Page 3 等等。
我在后台使用 Couchbase,下一个链接是这样的(pagination w couchbase):
?startkey="Box3-key"&startkey_docid=Box3&skip=1&limit=3
?startkey="Box6-key"&startkey_docid=Box6&skip=1&limit=3
?startkey="Box9-key"&startkey_docid=Box9&skip=1&limit=3
我不知道问题是什么。