jQuery实现的分页功能示例


Posted in Javascript onJanuary 22, 2017

本文实例讲述了jQuery实现的分页功能。分享给大家供大家参考,具体如下:

1、分页栏HTML码

<div class="g-cf g-pagerwp">
  <div style="visibility:hidden" class="g-pager">
  </div>
</div>

2、CSS样式文件

.g-cf:after {clear: both;content: "";display: table;}
.g-cf {zoom:1;}
/*分页*/
.g-pager{ text-align:center; color: #111111; font: 12px/1.5em Arial,Tahoma; float: right;}
.g-pager a,.g-pager input{ cursor:pointer; border:solid 1px #0F71BE; padding:1px 4px; color:#0F71BE; margin:0 2px; vertical-align:middle; }
.g-pager a.cur,.g-pager a:hover{ background-color:#0F71BE; color:#fff}
.g-pager a.no{ border-color:#A3A3A3; color:#A3A3A3; background-color:#E4F2F9}
.g-pager span{ margin-right:10px; }
.g-pager input{ cursor:default; width:28px; padding:1px 2px; }
.g-pagerwp{ height:23px; line-height:23px;padding:5px; margin-bottom:10px; border: 1px solid #DDDDDD;}
.g-pagerwp .g-btn{ vertical-align:top}

3、JS脚本文件

① 引用JQuery和分页脚本

<script src="/js/common/jquery-1.6.2.js" type="text/javascript"></script>
<script src="/js/jquery.PageBar.js" type="text/javascript"></script>

② 编写jquery.PageBar.js脚本

/**************************/
//JQuery分页栏
/**************************/
$.fn.pageBar = function(options) {
  var configs = {
    PageIndex: 1,
    PageSize: 15,
    TotalPage: 0,
    RecordCount: 0,
    showPageCount: 4,
    onPageClick: function(pageIndex) {
      return false;  //默认的翻页事件
    }
  }
  $.extend(configs, options);
  var tmp = "",
  i = 0,
  j = 0,
  a = 0,
  b = 0,
  totalpage = parseInt(configs.RecordCount / configs.PageSize);
  totalpage = configs.RecordCount % configs.PageSize > 0 ? totalpage + 1 : totalpage;
  tmp += "<span>总记录数:" + configs.RecordCount + "</span > ";
  tmp += " <span>页数:" + totalpage + "</span>";
  if (configs.PageIndex > 1) {
    tmp += "<a><</a>"
  } else {
    tmp += "<a class=\"no\"><</a>"
  }
  tmp += "<a>1</a>";
  if (totalpage > configs.showPageCount + 1) {
    if (configs.PageIndex <= configs.showPageCount) {
      i = 2;
      j = i + configs.showPageCount;
      a = 1;
    } else if (configs.PageIndex > totalpage - configs.showPageCount) {
      i = totalpage - configs.showPageCount;
      j = totalpage;
      b = 1;
    } else {
      var k = parseInt((configs.showPageCount - 1) / 2);
      i = configs.PageIndex - k;
      j = configs.PageIndex + k + 1;
      a = 1;
      b = 1;
      if ((configs.showPageCount - 1) % 2) {
        i -= 1
      }
    }
  }
  else {
    i = 2;
    j = totalpage;
  }
  if (b) {
    tmp += "..."
  }
  for (; i < j; i++) {
    tmp += "<a>" + i + "</a>"
  }
  if (a) {
    tmp += " ... "
  }
  if (totalpage > 1) {
    tmp += "<a>" + totalpage + "</a>"
  }
  if (configs.PageIndex < totalpage) {
    tmp += "<a>></a>"
  } else {
    tmp += "<a class=\"no\">></a>"
  }
  tmp += "<input type=\"text\" /><a>Go</a>"
  var pager = this.html(tmp)
  var index = pager.children('input')[0]
  pager.children('a').click(function() {
    var cls = $(this).attr('class');
    if (this.innerHTML == '<') {
      if (cls != 'no') {
        configs.onPageClick(configs.PageIndex - 2)
      }
    } else if (this.innerHTML == '>') {
      if (cls != 'no') {
        configs.onPageClick(configs.PageIndex)
      }
    } else if (this.innerHTML == 'Go') {
      if (!isNaN(index.value)) {
        var indexvalue = parseInt(index.value);
        indexvalue = indexvalue < 1 ? 1 : indexvalue
        indexvalue = indexvalue > totalpage ? totalpage : indexvalue
        configs.onPageClick(indexvalue - 1)
      }
    } else {
      if (cls != 'cur') {
        configs.onPageClick(parseInt(this.innerHTML) - 1)
      }
    }
  }).each(function() {
    if (configs.PageIndex == parseInt(this.innerHTML)) {
      $(this).addClass('cur')
    }
  })
}

③ 初始化使用

$(document).ready(function() {
  //设置分页信息
  var pageOptions = {
    AllowPaging: true,
    PageIndex: 1,    //设置当前页码
    PageSize: 15,    //设置分页大小
    RecordCount: 1092, //设置数据总数
    TotalPage: 73,   //设置总页数
    showPageCount: 4,
    onPageClick: function(pageIndex) {
    alert("您点击了第" + parseInt(pageIndex + 1) + "页");  //自定义您的翻页事件
      return false;
    }
  }
  //初始化分页栏
  $('.g-pagerwp .g-pager').css('visibility', 'visible').pageBar(pageOptions);
})

希望本文所述对大家jQuery程序设计有所帮助。

Javascript 相关文章推荐
使用正则替换变量
May 05 Javascript
js同比例缩放图片的小例子
Oct 30 Javascript
21个JavaScript事件(Events)属性汇总
Dec 02 Javascript
初步使用bootstrap快速创建页面
Mar 03 Javascript
js通过classname来获取元素的方法
Nov 24 Javascript
Android中Okhttp3实现上传多张图片同时传递参数
Feb 18 Javascript
vue项目中添加单元测试的方法
Jul 21 Javascript
vue-image-crop基于Vue的移动端图片裁剪组件示例
Aug 28 Javascript
vue中使用protobuf的过程记录
Oct 26 Javascript
为vue项目自动设置请求状态的配置方法
Jun 09 Javascript
微信小程序使用蓝牙小插件
Sep 23 Javascript
vue3.0 数字翻牌组件的使用方法详解
Apr 20 Vue.js
jQuery加载及解析XML文件的方法实例分析
Jan 22 #Javascript
原生js实现类似fullpage的单页/全屏滚动
Jan 22 #Javascript
前端开发必知的15个jQuery小技巧
Jan 22 #Javascript
Vue.js学习之过滤器详解
Jan 22 #Javascript
Jquery与Bootstrap实现后台管理页面增删改查功能示例
Jan 22 #Javascript
Ionic 2 实现列表滑动删除按钮的方法
Jan 22 #Javascript
Vue.js学习之计算属性
Jan 22 #Javascript
You might like
PHP获得用户使用的代理服务器ip即真实ip
2006/12/31 PHP
php 分库分表hash算法
2009/11/12 PHP
PHP逐行输出(ob_flush与flush的组合)
2012/02/04 PHP
php教程之phpize使用方法
2014/02/12 PHP
php中spl_autoload详解
2014/10/17 PHP
如何使用php等比例缩放图片
2016/10/12 PHP
使用JavaScript switch case 另类写法
2010/03/14 Javascript
基于jQuery的的一个隔行变色,鼠标移动变色的小插件
2010/07/06 Javascript
jQuery Mobile动态刷新页面样式的实现方法
2016/05/28 Javascript
jQuery ready()和onload的加载耗时分析
2016/09/08 Javascript
解析Javascript单例模式概念与实例
2016/12/05 Javascript
vue父组件通过props如何向子组件传递方法详解
2017/08/16 Javascript
原生JS与jQuery编写简单选项卡
2017/10/30 jQuery
vue内置组件transition简单原理图文详解(小结)
2018/07/12 Javascript
react实现移动端下拉菜单的示例代码
2020/01/16 Javascript
JavaScript数组常用的增删改查与其他属性详解
2020/10/13 Javascript
[48:56]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 VG vs KG
2018/03/31 DOTA
python获取远程图片大小和尺寸的方法
2015/03/26 Python
详解Python中列表和元祖的使用方法
2015/04/25 Python
Python使用Paramiko模块编写脚本进行远程服务器操作
2016/05/05 Python
Python信息抽取之乱码解决办法
2017/06/29 Python
Python实现PS滤镜特效之扇形变换效果示例
2018/01/26 Python
Python中property函数用法实例分析
2018/06/04 Python
如何使用Python多线程测试并发漏洞
2019/12/18 Python
解决tensorflow训练时内存持续增加并占满的问题
2020/01/19 Python
python实现简单的购物程序代码实例
2020/03/03 Python
Python批量安装卸载1000个apk的方法
2020/04/10 Python
解决jupyter运行pyqt代码内核重启的问题
2020/04/16 Python
为世界各地的女性设计和生产时尚服装:ROMWE
2016/09/17 全球购物
英国日常交易网站:Wowcher
2018/09/04 全球购物
资产经营总监岗位职责
2013/12/04 职场文书
数控技术学生的自我评价
2014/02/15 职场文书
党员教师四风问题整改措施思想汇报
2014/10/08 职场文书
收银员岗位职责
2015/02/03 职场文书
python实现大文本文件分割成多个小文件
2021/04/20 Python
MySQL令人大跌眼镜的隐式转换
2021/08/23 MySQL