gpt4 book ai didi

jquery - 过滤和分页

转载 作者:行者123 更新时间:2023-12-01 03:48:38 25 4
gpt4 key购买 nike

大家好,感谢您的帮助。我正在尝试实现一个简单的分页过滤器,按类别隐藏 li。示例为here 。我是这方面的新手,但在一些帮助下,主要想法正在发挥作用。唯一的问题是,当我单击过滤时,我只想对该类别中的 li 进行分页。因此,如果我单击“category 1”链接,则类“category-2”的 li 应该隐藏,当我单击“下一个”或“上一个”时,不会出现。

HTML

<div class="filter">
<a href="#category-1">category 1</a>
<a href="#category-2">category 2</a>
</div>

<div id="item-wrapper">
<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>
<li class="category-1">item 13</li>
<li class="category-1">item 14</li>
<li class="category-2">item 15</li>
</ul>

<div class="ctrl-nav">
<a href="#" id="prev">Previous</a><a href="#" id="next">Next</a>
</div>
</div>

JS

$('div.filter').delegate('a', 'click', function (event) {
$('ul.items li').hide().filter('.' + this.href.slice(this.href.indexOf("#") + 1)).show();

event.preventDefault();
});


var itemsNumber = 6;
var min = 0;
var max = itemsNumber;

function pagination(action) {

var totalItems = $("li").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;

}
}

$("li").hide();
$("li").slice(min, max).show();

}

pagination();


//Next
$("#next").click(function() {

action = "next";
pagination(action);

})

//Previous
$("#prev").click(function() {
action = "prev";
pagination(action);

})

任何帮助都会很好:)

最佳答案

我已经更新了您的脚本:http://jsfiddle.net/vU9Hv/12/

基本上,我引入了一个新变量 visible,其中包含要显示的所选 li 类。然后,分页函数处理所有 li 的显示/隐藏。该变量默认设置为空白;因此,所有li都会首先显示。 pagination 函数将以:

var totalItems = $("li" + visible).length;

并以以下内容结尾:

$("li" + visible).slice(min, max).show();

当点击处理程序转换为:

$('div.filter').delegate('a', 'click', function (event) {
visible = '.' + this.href.slice(this.href.indexOf("#") + 1);
pagination();
event.preventDefault();
});

关于jquery - 过滤和分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11025766/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com