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 相关文章推荐
在JavaScript中获取请求的URL参数[正则]
Dec 25 Javascript
五个jQuery图片画廊插件 推荐
May 12 Javascript
jQuery学习笔记之jQuery中的$
Jan 19 Javascript
javascript巧用eval函数组装表单输入项为json对象的方法
Nov 25 Javascript
神奇!js+CSS+DIV实现文字颜色渐变效果
Mar 16 Javascript
bootstrap-table实现服务器分页的示例 (spring 后台)
Sep 01 Javascript
jquery ztree实现右键收藏功能
Nov 20 jQuery
微信小程序实现简单跑马灯效果
May 26 Javascript
Vue使用watch监听一个对象中的属性的实现方法
May 10 Javascript
关于layui 弹出层一闪而过就消失的解决方法
Sep 09 Javascript
vue项目实现减少app.js和vender.js的体积操作
Nov 12 Javascript
vuex Module将 store 分割成模块的操作
Dec 07 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
IIS php环境配置PHP5 MySQL5 ZendOptimizer phpmyadmin安装与配置
2008/11/18 PHP
php下载文件的代码示例
2012/06/29 PHP
PHP加密函数 Javascript/Js 解密函数
2013/09/23 PHP
php获取汉字首字母的函数
2013/11/07 PHP
图文介绍PHP添加Redis模块及连接
2015/07/28 PHP
php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
2020/02/27 PHP
学习ExtJS TextField常用方法
2009/10/07 Javascript
Ext.FormPanel 提交和 Ext.Ajax.request 异步提交函数的区别
2009/11/12 Javascript
js下写一个事件队列操作函数
2010/07/19 Javascript
基于jQuery的图片大小自动适应实现代码
2010/11/17 Javascript
Jquery UI震动效果实现原理及步骤
2013/02/04 Javascript
iframe里面的元素触发父窗口元素事件的jquery代码
2014/10/19 Javascript
javascript判断css3动画结束 css3动画结束的回调函数
2015/03/10 Javascript
javascript实现禁止鼠标滚轮事件
2015/07/24 Javascript
js实现简洁大方的二级下拉菜单效果代码
2015/09/01 Javascript
深入浅析JavaScript中prototype和proto的关系
2015/11/15 Javascript
基于JavaScript实现验证码功能
2017/04/01 Javascript
浅谈Node.js 沙箱环境
2018/05/15 Javascript
JavaScript实现图片放大预览效果
2020/11/02 Javascript
Python 40行代码实现人脸识别功能
2017/04/02 Python
Python面向对象class类属性及子类用法分析
2018/02/02 Python
python 获取文件下所有文件或目录os.walk()的实例
2018/04/23 Python
Python WSGI的深入理解
2018/08/01 Python
对Pandas DataFrame缺失值的查找与填充示例讲解
2018/11/06 Python
Python寻找两个有序数组的中位数实例详解
2018/12/05 Python
用Python实现大文本文件切割的方法
2019/01/12 Python
Python实现Selenium自动化Page模式
2019/07/14 Python
Django 解决上传文件时,request.FILES为空的问题
2020/05/20 Python
Python脚本如何在bilibili中查找弹幕发送者
2020/06/04 Python
Python爬虫回测股票的实例讲解
2021/01/22 Python
国际性能运动服装品牌:Dare 2b
2018/07/27 全球购物
世界上最受欢迎的花店:1-800-Flowers.com
2020/06/01 全球购物
公证书标准格式
2014/04/10 职场文书
优秀工会工作者事迹材料
2014/06/02 职场文书
新学期开学标语2015
2015/07/16 职场文书
2015年党务工作者个人工作总结
2015/10/22 职场文书