简单jQuery动态分页
我想编写自己的分页脚本,而不是下载和使用别人的优秀插件 这是我到目前为止所拥有的 我的问题是如何更有效地执行排序功能?有没有一种方法可以根据我首先声明的var及其相对于行的id进行识别,并确定类似于#something5是第五行,所以从第6行迭代到第11行?而不是使用.next()函数,如图所示简单jQuery动态分页,jquery,Jquery,我想编写自己的分页脚本,而不是下载和使用别人的优秀插件 这是我到目前为止所拥有的 我的问题是如何更有效地执行排序功能?有没有一种方法可以根据我首先声明的var及其相对于行的id进行识别,并确定类似于#something5是第五行,所以从第6行迭代到第11行?而不是使用.next()函数,如图所示 <div id="rows"> <div class="row" id="something1">something1</div> <di
<div id="rows">
<div class="row" id="something1">something1</div>
<div class="row" id="something2">something2</div>
<div class="row" id="something3">something3</div>
<div class="row" id="something4">something4</div>
<div class="row" id="something5">something5</div>
<div class="row" id="something6">something6</div>
<div class="row" id="something7">something7</div>
<div class="row" id="something8">something8</div>
<div class="row" id="something9">something9</div>
<div class="row" id="something10">something10</div>
<div class="row" id="something11">something11</div>
<div class="row" id="something12">something12</div>
</div>
<a href="#" id="prev">prev</a>
<a href="#" id="next">next</a>
<br />
<span id="total"></span>
var max = 5;
function sort(x) {
if (x == "prev") {
var first = $('#rows .row:visible').first().attr('id');
if (first != "something5") {
$('#rows .row').hide();
$('#'+first).prev('div').show();
$('#'+first).prev('div').prev('div').show();
$('#'+first).prev('div').prev('div').prev('div').show();
$('#'+first).prev('div').prev('div').prev('div').prev('div').show();
$('#'+first).prev('div').prev('div').prev('div').prev('div').prev('div').show();
}
} else {
var last = $('#rows .row:visible').last().attr('id');
$('#rows .row').hide();
$('#'+last).next('div').show();
$('#'+last).next('div').next('div').show();
$('#'+last).next('div').next('div').next('div').show();
$('#'+last).next('div').next('div').next('div').next('div').show();
$('#'+last).next('div').next('div').next('div').next('div').next('div').show();
}
}
$(document).ready(function() {
var total = $('#rows .row').size();
var pages = total / max;
$("#total").text("page " + pages + " of " + total);
$('#rows .row').hide();
for (i = 0; i < max; i++) {
$('#rows .row').eq(i).css('display', 'block');
}
$('#prev').click(function() {
sort("prev");
});
$('#next').click(function() {
sort("next");
});
});
有些事
什么
有些事
有些事
什么
什么
什么
什么
有些事
有些事
有些事
什么
var max=5;
函数排序(x){
如果(x=“上一个”){
var first=$('#rows.row:visible').first().attr('id');
如果(第一个!=“某物5”){
$('#rows.row').hide();
$('#'+first.prev('div').show();
$(“#”+first.prev('div').prev('div').show();
$('#'+first).prev('div').prev('div').prev('div').show();
$(“#”+first.prev('div').prev('div').prev('div').prev('div').show();
$('#'+first).prev('div').prev('div').prev('div').prev('div').prev('div').show();
}
}否则{
var last=$('#rows.row:visible').last().attr('id');
$('#rows.row').hide();
$('#'+last).next('div').show();
$('#'+last).next('div').next('div').show();
$('#'+last).next('div').next('div').next('div').show();
$('#'+last).next('div').next('div').next('div').next('div').next('div').show();
$('#'+last).next('div').next('div').next('div').next('div').next('div').show();
}
}
$(文档).ready(函数(){
var total=$('#rows.row').size();
var pages=总页数/最大页数;
$(“#总计”)。文本(“第页+第页+共页”);
$('#rows.row').hide();
对于(i=0;i
jshiddle这里试试这个:
剩下的fot u要做的是处理边缘场景(开始时防止上一个或结束时防止下一个)
var max=5;
var pageNum=0;
var_35;=$('#rows.row');
$(文档).ready(函数()
{
var total=u0.length;
var pages=总页数/最大页数;
$('#prev')。单击(函数()
{
pageNum--;
排序(“prev”);
});
$(“#下一步”)。单击(函数()
{
pageNum++;
排序(“下一步”);
});
$('#next')。触发器('click');
});
函数排序(a)
{
_.hide();
_.过滤器(功能(i)
{
返回i>=(pageNum-1)*max和&i<(pageNum)*max;
}).show();
$(“#总计”).text(“+Math.ceil($(“#rows.row”).length/max”)中的“+pageNum+”);
}
这不是排序功能。但是分页功能。您的排序函数不会生成任何值。谢谢,您不熟悉筛选函数,请解释i>=(pageNum-1)*max&&i<(pageNum)*max代码好吗?检查每个.row div,检查其整数值(?)是否大于或大于pageNum-1*max,以及是否小于pageNum*max,然后返回true/false,并对真值执行.show()?是否尝试将值放入此公式中?我认为这很直截了当。
var max = 5;
var pageNum = 0;
var _ = $('#rows .row');
$(document).ready(function ()
{
var total = _.length;
var pages = total / max;
$('#prev').click(function ()
{
pageNum--;
sort("prev");
});
$('#next').click(function ()
{
pageNum++;
sort("next");
});
$('#next').trigger('click');
});
function sort(a)
{
_.hide();
_.filter(function (i)
{
return i >= (pageNum - 1) * max && i < (pageNum) * max;
}).show();
$("#total").text("page " + pageNum + " of " + Math.ceil($('#rows .row').length / max));
}