简单jQuery动态分页

简单jQuery动态分页,jquery,Jquery,我想编写自己的分页脚本,而不是下载和使用别人的优秀插件 这是我到目前为止所拥有的 我的问题是如何更有效地执行排序功能?有没有一种方法可以根据我首先声明的var及其相对于行的id进行识别,并确定类似于#something5是第五行,所以从第6行迭代到第11行?而不是使用.next()函数,如图所示 <div id="rows"> <div class="row" id="something1">something1</div> <di

我想编写自己的分页脚本,而不是下载和使用别人的优秀插件

这是我到目前为止所拥有的

我的问题是如何更有效地执行排序功能?有没有一种方法可以根据我首先声明的var及其相对于行的id进行识别,并确定类似于#something5是第五行,所以从第6行迭代到第11行?而不是使用.next()函数,如图所示

 <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));
}