jquery.page2.js

jquery.page2.js

 

1.引入头文件,详细使用方式参见http://127.0.0.1:8080/default/xshdbx/welcome.jsp:
<script src="js/jquery.page2.js"></script>
2.//使用
$(function() {
    // 分页器
    $("#page").Page({
      totalPages: 3, //分页总数
      liNums: 7, //分页的数字按钮数(建议取奇数)
      activeClass: 'activP', //active 类样式定义
      nowPage:3,
      callBack: function(page) {
      }
    });
});

注意:jquery.page2.js  比jquery.page.js 多一个参数:nowPage。更能适应当
页面跳转时,发现后台因为用户的增删改查引起,页面总数,当前页发生变化的情况。

 

/*
 *page plugin 1.0   2016-09-29 by cary
 */
(function($) {
  //默认参数
  var defaults = {
    totalPages: 9, //总页数
    liNums: 9, //分页的数字按钮数(建议取奇数)
    nowPage:1,
    activeClass: 'active', //active类
    firstPage: '首页', //首页按钮名称
    lastPage: '末页', //末页按钮名称
    prv: '«', //前一页按钮名称
    next: '»', //后一页按钮名称
    hasFirstPage: true, //是否有首页按钮
    hasLastPage: true, //是否有末页按钮
    hasPrv: true, //是否有前一页按钮
    hasNext: true, //是否有后一页按钮
    callBack: function(page) {
      //回掉,page选中页数
    }
  };

  //插件名称
  $.fn.Page = function(options) {
    //覆盖默认参数
    var opts = $.extend(defaults, options);
    //主函数
    return this.each(function() {
      var obj = $(this);
      var l = opts.totalPages;
      var n = opts.liNums;
      var active = opts.activeClass;
      var str = '';
      var str1 = '<li><a href="javascript:" class="' + active + '">1</a></li>';
      if (l > 1 && l < n + 1) {
        for (i = 2; i < l + 1; i++) {
          str += '<li><a href="javascript:">' + i + '</a></li>';
        }
      } else if (l > n) {
        for (i = 2; i < n + 1; i++) {
          str += '<li><a href="javascript:">' + i + '</a></li>';
        }
      }
      var dataHtml = '';
      if (opts.hasNext) {
        dataHtml += '<div class="next fr">' + opts.next + '</div>';
      }
      // if (opts.hasLastPage) {
      //   dataHtml += '<div class="last fr">' + opts.lastPage + '</div>';
      // }
      dataHtml += '<ul class="pagingUl">' + str1 + str + '</ul>';
      // if (opts.hasFirstPage) {
      //   dataHtml += '<div class="first fr">' + opts.firstPage + '</div>';
      // }
      if (opts.hasPrv) {
        dataHtml += '<div class="prv fr">' + opts.prv + '</div>';
      }

      obj.html(dataHtml).off("click"); //防止插件重复调用时,重复绑定事件
      if(opts.nowPage !=1){
            var pageshow=opts.nowPage;
            var nums = odevity(n);
            if (l > n) {
              if (pageshow > l - nums / 2 && pageshow < l + 1) {
                //最后几项
                fpageNext((n - 1) - (l - pageshow));
              } else if (pageshow > 0 && pageshow < nums / 2) {
                //最前几项
                fpagePrv(pageshow - 1);
              } else {
                fpageShow(pageshow);
              }
            } else {
               fpagePrv(pageshow - 1);
            }
            
          
      }

      obj.on('click', '.next', function() {
        var pageshow = parseInt($('.' + active).html());
        var nums, flag;
        var a = n % 2;
        if (a == 0) {
          //偶数
          nums = n;
          flag = true;
        } else if (a == 1) {
          //奇数
          nums = (n + 1);
          flag = false;
        }
        if (pageshow >= l) {
          return;
        } else if (pageshow > 0 && pageshow <= nums / 2) {
          //最前几项
          $('.' + active).removeClass(active).parent().next().find('a').addClass(active);
        } else if ((pageshow > l - nums / 2 && pageshow < l && flag == false) || (pageshow > l - nums / 2 - 1 && pageshow < l && flag == true)) {
          //最后几项
          $('.' + active).removeClass(active).parent().next().find('a').addClass(active);
        } else {
          $('.' + active).removeClass(active).parent().next().find('a').addClass(active);
          fpageShow(pageshow + 1);
        }
        opts.callBack(pageshow + 1);
      });
      obj.on('click', '.prv', function() {
        var pageshow = parseInt($('.' + active).html());
        var nums = odevity(n);
        if (pageshow <= 1) {
          return;
        } else if ((pageshow > 1 && pageshow <= nums / 2) || (pageshow > l - nums / 2 && pageshow < l + 1)) {
          //最前几项或最后几项
          $('.' + active).removeClass(active).parent().prev().find('a').addClass(active);
        } else {
          $('.' + active).removeClass(active).parent().prev().find('a').addClass(active);
          fpageShow(pageshow - 1);
        }
        opts.callBack(pageshow - 1);
         return;
      });

      obj.on('click', '.first', function() {
        var activepage = parseInt($('.' + active).html());
        if (activepage <= 1) {
          return
        } //当前第一页
        opts.callBack(1);
        return;
        fpagePrv(0);
      });
      obj.on('click', '.last', function() {
        var activepage = parseInt($('.' + active).html());
        if (activepage >= l) {
          return;
        } //当前最后一页
        opts.callBack(l);
         return;
        if (l > n) {
          fpageNext(n - 1);
        } else {
          fpageNext(l - 1);
        }
      });

      obj.on('click', 'li', function() {
        var $this = $(this);
        var pageshow = parseInt($this.find('a').html());
        var nums = odevity(n);
          opts.callBack(pageshow);
          return;
      
        if (l > n) {
          if (pageshow > l - nums / 2 && pageshow < l + 1) {
            //最后几项
            fpageNext((n - 1) - (l - pageshow));
          } else if (pageshow > 0 && pageshow < nums / 2) {
            //最前几项
            fpagePrv(pageshow - 1);
          } else {
            fpageShow(pageshow);
          }
        } else {
          $('.' + active).removeClass(active);
          $this.find('a').addClass(active);
        }
      });

      //重新渲染结构
      /*activePage 当前项*/
      function fpageShow(activePage) {
        var nums = odevity(n);
        var pageStart = activePage - (nums / 2 - 1);
        var str1 = '';
        for (i = 0; i < n; i++) {
          str1 += '<li><a href="javascript:" class="">' + (pageStart + i) + '</a></li>'
        }
        obj.find('ul').html(str1);
        obj.find('ul li').eq(nums / 2 - 1).find('a').addClass(active);
      }
      /*index 选中项索引*/
      function fpagePrv(index) {
        var str1 = '';
        if (l > n - 1) {
          for (i = 0; i < n; i++) {
            str1 += '<li><a href="javascript:" class="">' + (i + 1) + '</a></li>'
          }
        } else {
          for (i = 0; i < l; i++) {
            str1 += '<li><a href="javascript:" class="">' + (i + 1) + '</a></li>'
          }
        }
        obj.find('ul').html(str1);
        obj.find('ul li').eq(index).find('a').addClass(active);
      }
      /*index 选中项索引*/
      function fpageNext(index) {
        var str1 = '';
        if (l > n - 1) {
          for (i = l - (n - 1); i < l + 1; i++) {
            str1 += '<li><a href="javascript:" class="">' + i + '</a></li>'
          }
          obj.find('ul').html(str1);
          obj.find('ul li').eq(index).find('a').addClass(active);
        } else {
          for (i = 0; i < l; i++) {
            str1 += '<li><a href="javascript:" class="">' + (i + 1) + '</a></li>'
          }
          obj.find('ul').html(str1);
          obj.find('ul li').eq(index).find('a').addClass(active);
        }
      }
      //判断liNums的奇偶性
      function odevity(n) {
        var a = n % 2;
        if (a == 0) {
          //偶数
          return n;
        } else if (a == 1) {
          //奇数
          return (n + 1);
        }
      }
    });
  }
})(jQuery);

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值