利用JQuery实现分页器

用JQuery实现了一个分页器,大部分情况下,我们分页是用ajax请求后台数据,然后显示数据。在这里呢,我就把数据都生成了,然后显示当前页隐藏其他页内容,下面就来上代码吧~

下面是生成分页、内容、分页按钮等,生成页面内容时比较随意,直接是全部生成“1111111”了。

//页面初始化生成,默认值为下拉条数的第一个值和第一页。
    $(document).ready(function() {
      var selectNum = $("select").eq(0).val();
      createContent(selectNum, 1);
      $(".navUl li").eq(0).trigger("click");
    })

var parameter = {
      total: 42, //数据长度
      lastPage: '', //最后页内容的长度
      pages: '', //页数
      currentPage: $("#pageInput"), //当前页数
      navUl: $(".navUl"), //页数导航Ul
      contentClass: $(".contentClass") //内容Div
    }

 
//生成每页的内容
    function createContent(selectNum, index) {
      var totalNum = parameter.total, //全部数据长度
          last = totalNum % selectNum, //最后页内容的长度
          pages = Math.ceil(totalNum / selectNum), //页数
          currentPage = parameter.currentPage, //当前页
          contentClass = parameter.contentClass, //内容Div
          navUl = parameter.navUl, //总页数
          length; //每页的条数

      //重置部分内容
      currentPage.val(""); //格式化当前页的值
      contentClass.text(""); //格式化生成的内容
      navUl.text(""); //格式化页数按钮

      $(".pageLength span").html(totalNum); //设置内容总条数
 
      if (totalNum > 0) { //判断数据长度是否为0
        for (var n = 0; n < pages; n++) { //循环页数生成内容
          if (totalNum >= selectNum) { //判断是否为最后页,若是最后页则生成最后页的数据
            length = selectNum;
          } else {
            length = last;
          }
          var content = $("<ul>").addClass("content"); //生成每页的Ul标签
          //根据每页的条数生成对应页的条数和内容
          for (var i = 0; i < length; i++) {
            var licontent = $("<li>").text('1111111'); //这里生成的内容比较随意,在实际情况中应该是要循环添加内容
            content.append(licontent);
          }
          totalNum -= length; //减去已生成的条数
          contentClass.append(content);
        }
        //循环生成页数导航
        for (var j = 0; j < pages; j++) {
          var liNav = $("<li>").text(j + 1).on('click', navClick); //绑定点击事件
          navUl.append(liNav);
        }
      } else { //若无数据则显示"无数据"
        var content = $("<ul>");
        content.addClass("content");
        var liNav = $('<li>').text(1),
          licontent = $('<li>').text('无数据');
        content.append(licontent);
        navUl.append(liNav);
        contentClass.append(content);
      }
      $(".navUl li").eq(index - 1).trigger("click"); //根据已选的页数,触发页数导航
      $("select").val(selectNum); //设置每页条数
    }

以下是换页和选择每页显示条数 事件 

//页数导航的点击事件,以点击当前页,隐藏同类的其他页的方式。
    function navClick() {
      $(this).addClass("active").siblings().removeClass("active");
      var othis = $(this),
        index = othis.index();
      parameter.currentPage.val(othis.text());
      $(".content").eq(index).show().siblings().hide();
    }

    //上一页和下一页按钮的点击事件
    $(".btns").click(function() {
      var othis = $(this),
        indexInputVal = parameter.currentPage.val(), //获取当前页
        selectVal = $("#select option:selected").val(), //获取每页条数值
        navLiLen = $(".navUl li").length; //获取页数长度
      if (othis.hasClass("pre")) { //判断是否为"上一页"按钮
        if (indexInputVal == 1) {
          createContent(selectVal, navLiLen);
        } else {
          createContent(selectVal, --indexInputVal);
        }
      } else {
        if (indexInputVal == navLiLen) {
          createContent(selectVal, 1);
        } else {
          createContent(selectVal, ++indexInputVal);
        }
      }
    })


    //选择每页条数触发事件
    $("select").change(function() {
      var othis = $(this).val();
      createContent(othis, 1);
      $(".navUl li").eq(0).trigger("click");
    })
	
	//直接输入页数,跳转到相应页
    parameter.currentPage.keyup(function(event) {
      var indexInputVal = parameter.currentPage.val(), //获取当前页
        selectVal = $("#select option:selected").val(); //获取每页条数值
      if (event.keyCode == '13') {
        createContent(selectVal, indexInputVal);
      }
    });

演示图 如下: 

分页GIF演示图

 

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值