• 分页插件,直接把返回值赋过去即可


    结构:
    <!DOCTYPE html>
    <html>
    
      <head>
        <meta charset="utf-8" />
        <title></title>
        <style>
          * {
            padding: 0;
            margin: 0;
          }
          
          .page_div {
            margin-top: 20px;
            margin-bottom: 20px;
            font-size: 15px;
            font-family: "microsoft yahei";
            color: #666666;
            margin-right: 10px;
            padding-left: 20px;
            box-sizing: border-box;
          }
          
          .page_div a {
            min- 30px;
            height: 28px;
            border: 1px solid #dce0e0!important;
            text-align: center;
            margin: 0 4px;
            cursor: pointer;
            line-height: 28px;
            color: #666666;
            font-size: 13px;
            display: inline-block;
          }
          
          #firstPage,
          #lastPage {
             50px;
            color: #0073A9;
            border: 1px solid #0073A9!important;
          }
          
          #prePage,
          #nextPage {
             70px;
            color: #0073A9;
            border: 1px solid #0073A9!important;
          }
          
          .page_div .current {
            background-color: #0073A9;
            border-color: #0073A9;
            color: #FFFFFF;
          }
          
          .totalPages {
            margin: 0 10px;
          }
          
          .totalPages span,
          .totalSize span {
            color: #0073A9;
            margin: 0 5px;
          }
        </style>
      </head>
    
      <body>
        <div id="page" class="page_div"></div>
      </body>
      <script src="http://www.jq22.com/jquery/jquery-1.10.2.js"></script>
      <script type="text/javascript" src="js/paging.js"></script>
      <script>
        //分页
        $("#page").paging({
          pageNo: 5,
          totalPage: 9,
          totalSize: 300,
          callback: function(num) {
            alert(num)
          }
        })
    
        // 模拟ajax数据用以下方法,方便用户更好的掌握用法
        //参数为当前页
        ajaxTest(1);
        function ajaxTest(num) {
          $.ajax({
            url: "table.json",
            type: "get",
            data: {},
            dataType: "json",
            success: function(data) {
              console.log(data);
              //分页
              $("#page").paging({
                pageNo: num,
                totalPage: data.totalPage,
                totalSize: data.totalSize,
                callback: function(num) {
                  ajaxTest(num)
                }
              })
            }
          })
        }
      </script>
    </html>

     封装好的js:

    (function($, window, document, undefined) {
      //定义分页类
      function Paging(element, options) {
        this.element = element;
        //传入形参
        this.options = {
          pageNo: options.pageNo || 1,
          totalPage: options.totalPage,
          totalSize: options.totalSize,
          callback: options.callback
        };
        //根据形参初始化分页html和css代码
        this.init();
      }
      //对Paging的实例对象添加公共的属性和方法
      Paging.prototype = {
        constructor: Paging,
        init: function() {
          this.creatHtml();
          this.bindEvent();
        },
        creatHtml: function() {
          var me = this;
          var content = "";
          var current = me.options.pageNo;
          var total = me.options.totalPage;
          var totalNum = me.options.totalSize;
          content += "<a id="firstPage">首页</a><a id='prePage'>上一页</a>";
          //总页数大于6时候
          if(total > 6) {
            //当前页数小于5时显示省略号
            if(current < 5) {
              for(var i = 1; i < 6; i++) {
                if(current == i) {
                  content += "<a class='current'>" + i + "</a>";
                } else {
                  content += "<a>" + i + "</a>";
                }
              }
              content += ". . .";
              content += "<a>" + total + "</a>";
            } else {
              //判断页码在末尾的时候
              if(current < total - 3) {
                for(var i = current - 2; i < current + 3; i++) {
                  if(current == i) {
                    content += "<a class='current'>" + i + "</a>";
                  } else {
                    content += "<a>" + i + "</a>";
                  }
                }
                content += ". . .";
                content += "<a>" + total + "</a>";
                //页码在中间部分时候    
              } else {
                content += "<a>1</a>";
                content += ". . .";
                for(var i = total - 4; i < total + 1; i++) {
                  if(current == i) {
                    content += "<a class='current'>" + i + "</a>";
                  } else {
                    content += "<a>" + i + "</a>";
                  }
                }
              }
            }
            //页面总数小于6的时候
          } else {
            for(var i = 1; i < total + 1; i++) {
              if(current == i) {
                content += "<a class='current'>" + i + "</a>";
              } else {
                content += "<a>" + i + "</a>";
              }
            }
          }
          content += "<a id='nextPage'>下一页</a>";
          content += "<a id="lastPage">尾页</a>";
          content += "<span class='totalPages'> 共<span>" + total + "</span>页 </span>";
          content += "<span class='totalSize'> 共<span>" + totalNum + "</span>条记录 </span>";
          me.element.html(content);
        },
        //添加页面操作事件
        bindEvent: function() {
          var me = this;
          me.element.off('click', 'a');
          me.element.on('click', 'a', function() {
            var num = $(this).html();
            var id = $(this).attr("id");
            if(id == "prePage") {
              if(me.options.pageNo == 1) {
                me.options.pageNo = 1;
              } else {
                me.options.pageNo = +me.options.pageNo - 1;
              }
            } else if(id == "nextPage") {
              if(me.options.pageNo == me.options.totalPage) {
                me.options.pageNo = me.options.totalPage
              } else {
                me.options.pageNo = +me.options.pageNo + 1;
              }
    
            } else if(id == "firstPage") {
              me.options.pageNo = 1;
            } else if(id == "lastPage") {
              me.options.pageNo = me.options.totalPage;
            } else {
              me.options.pageNo = +num;
            }
            me.creatHtml();
            if(me.options.callback) {
              me.options.callback(me.options.pageNo);
            }
          });
        }
      };
      //通过jQuery对象初始化分页对象
      $.fn.paging = function(options) {
        return new Paging($(this), options);
      }
    })(jQuery, window, document);

    下载地址:http://www.jq22.com/jquery-info15564

  • 相关阅读:
    Live2d Test Env
    Live2d Test Env
    Live2d Test Env
    Live2d Test Env
    Live2d Test Env
    偷东西的学问-背包问题
    HMM-前向后向算法理解与实现(python)
    详解数组分段和最大值最小问题(最小m段和问题)
    打家劫舍系列
    面试题56
  • 原文地址:https://www.cnblogs.com/TigerZhang-home/p/8602841.html
Copyright © 2020-2023  润新知