我希望你能帮我this code。我试图分页一个记录列表,当我过滤内容时必须工作。
HTML
<div class="filter">
<a href="#category-1">category 1</a>
<a href="#category-2">category 2</a>
</div>
<ul class="items">
<li class="category-1">item 1</li>
<li class="category-1">item 2</li>
<li class="category-1">item 3</li>
<li class="category-1">item 4</li>
<li class="category-1">item 5</li>
<li class="category-1">item 6</li>
<li class="category-2">item 7</li>
<li class="category-2">item 8</li>
<li class="category-2">item 9</li>
<li class="category-2">item 10</li>
<li class="category-2">item 11</li>
<li class="category-2">item 12</li>
</ul>
<a href="#">Next</a> <a href="#">Previous</a>
JS:
$(window).load(function(){
$('div.filter').delegate('a', 'click', function (event) {
$('ul.items li').hide().filter('.' + this.href.slice(this.href.indexOf("#") + 1)).show();
event.preventDefault();
});
});
所以这是我的问题:
分页将是每6条记录(当我点击“下一步”其他时,显示前6个li。)
当我点击一个类别时,分页只适用于我用来过滤记录的类,所以如果我按“下一个”或“上一个”,这只是必须显示所选类别。
请随意修改我的代码。谢谢!
答案 0 :(得分:1)
试试这个:
var total = $("li").length;
$("li").each(function(i,v) {
var inc = i + '';
if (i < 10) {
inc = 1;
} else {
inc = parseInt(inc[0]) + 1;
}
$(this).addClass('row' + inc);
if ( i > 9) {
$(this).addClass('hide');
}
if (i % 10 === 0 ) {
var count = (i / 10) + 1;
$('.filter').append('<li><a class="paginate ' + count + '" href="#">' + count + '</a></li>');
}
})
答案 1 :(得分:1)
这是你要找的东西吗?
这通常适用于slice(min, max) function
。
您可以设置每页要显示的项目数
itemsNumber = 6 //you can change this as your requirement
这是工作代码
var item = $("li");
var itemsNumber = 6;
var min = 0;
var max = itemsNumber;
function pagination(action) {
var totalItems = item.length;
if (max < totalItems) {//Stop action if max reaches more than total items
if (action == "next") {
min = min + itemsNumber;
max = max + itemsNumber;
}
}
if (min > 0) {//Stop action if min reaches less than 0
if (action == "prev") {
min = min - itemsNumber;
max = max - itemsNumber;
}
}
item.hide();
item.slice(min, max).show();
}
pagination();
//Next
$("#next").click(function() {
action = "next";
pagination(action);
})
//Previous
$("#prev").click(function() {
action = "prev";
pagination(action);
})?