文章 专题 AI工具 学习 下载 问答 源码 最近更新
PHP
会员中心 讲师中心 微信公众号

扫码关注官方订阅号

登录
编程词典 博客 APP下载
首页 > web前端 > js教程 > 正文

如何使用jquery的分页插件

php中世界最好的语言
发布: 2018-03-14 15:12:41
原创
2994人浏览过

这次给大家带来如何使用jquery的分页插件,如何使用jquery的分页插件的注意事项有哪些,下面就是实战案例,一起来看一下。

jqpaginator简洁、高度自定义的jquery分页组件,适用于多种应用场景。

简介

现在网上各种各样的分页组件很多,但是很难找到十分”称心如意”的,于是jqPaginator诞生了。

我心中理想的分页组件,要不受CSS框架限制,可以使用在各种不同风格中的网页中。以我浅显的经验来看,要达到这个目标,关键的一点就是高度自定义的Html结构。所以jqPaginator努力做到合理范围内的自定义,使其灵活的使用了各种不同的场景。

效果截图:

013027_u0hW_1456287

使用说明

例子

用法很简单,首先引入jQuery和jqPaginator,之后就可以初始化分页了

$('#id').jqPaginator({
    totalPages: 100,
    visiblePages: 10,
    currentPage: 1,

    first: '<li class="first"><a href="javascript:void(0);">First</a></li>',
    prev: '<li class="prev"><a href="javascript:void(0);">Previous</a></li>',
    next: '<li class="next"><a href="javascript:void(0);">Next</a></li>',
    last: '<li class="last"><a href="javascript:void(0);">Last</a></li>',
    page: '<li class="page"><a href="javascript:void(0);">{{page}}</a></li>',
    onPageChange: function (num) {
        $('#text').html('当前第' + num + '页');
    }});
登录后复制
登录后复制

上例就是第一Demo,Bootstrap风格的分页。具体参数稍后介绍,这里要了解的是,如果使用的不是id,而是class,就会初始化该class的所有元素,实现上面”两个分页联动”的效果。

参数

参数 默认值 说明
totalPages 0 设置分页的总页数
totalCounts 0 设置分页的总条目数
pageSize 0 设置每一页的条目数
注意:要么设置totalPages,要么设置totalCounts + pageSize,否则报错;设置了totalCounts和pageSize后,会自动计算出totalPages。
currentPage 1 设置当前的页码
visiblePages 7 设置最多显示的页码数(例如有100也,当前第1页,则显示1 - 7页)
disableClass ‘disabled’ 设置首页,上一页,下一页,末页的”禁用状态”样式
activeClass ‘active’ 设置当前页码样式
first (无) 设置”首页”的Html结构
prev (无) 设置”上一页”的Html结构
next (无) 设置”下一页”的Html结构
last (无) 设置”末页”的Html结构
page (无) 设置页码的Html结构,其中可以使用{{page}}代表当前页,{{totalPages}}代表总页数,{{totalCounts}}代表总条目数(例如:上面的”极简风格”的Demo,就是使用了{{占位符}},并将visiblePages设为1实现的。)
wrapper (无) 分页结构的Html包裹,例如:

,一般不会用到
onPageChange (无) 回调函数,当换页时触发(包括初始化第一页的时候),会传入”目标页”的页码

扩展方法

jqPaginator提供了两个扩展方法,方便初始化后对组件进行操作。

$('#id').jqPaginator('option', options)
登录后复制
登录后复制

初始化后,动态修改配置

$('#id').jqPaginator('option', {
    currentPage: 1});
登录后复制
登录后复制
$('#id').jqPaginator('destroy')
登录后复制
登录后复制

销毁jqPaginator

$('#id').jqPaginator('destroy');
登录后复制
登录后复制

相关资料

  • 源码下载:https://github.com/keenwon/jqPaginator

  • 官方地址:http://jqpaginator.keenwon.com/

        </p>
登录后复制
登录后复制

推荐解决方案(结合后台):
首页通过一个具体后台查询跳转过来,带上总页数等数据,方便初始化分页导航条,并在table中显示第一页数据。
后续点击每一页按钮都发出ajax请求,并将该页数据作为json返回,填充到table中,这样做的好处是,不用每一次都查询总条数,只需要查询当前页面数据即可,速度快,减少数据库负担。具体代码如下,仅供参考:

<script type="text/javascript">$(function(){
    $('#page').jqPaginator({        //totalPages: 100,
        pageSize:2,//每一页多少条记录
        totalCounts:${totalCount},
        visiblePages: 10,
        currentPage: 1,

        first: '<li class="first"><a href="javascript:void(0);">First</a></li>',
        prev: '<li class="prev"><a href="javascript:void(0);">Previous</a></li>',
        next: '<li class="next"><a href="javascript:void(0);">Next</a></li>',
        last: '<li class="last"><a href="javascript:void(0);">Last</a></li>',
        page: '<li class="page"><a href="javascript:void(0);">{{page}}</a></li>',
        onPageChange: function (num) {
           // alert('当前第' + num + '页');
            //此处可以ajax加载下一页数据
            $.get('ajaxpage',{num:num},function(data){
                $("#tab").html('<tr><th>书籍Id</th><th>书名</th><th>价格</th><th>操作</th></tr>');                for(var i=0;i<data.length;i++){

                    $("#tab").append('<tr><td>'+data[i].id+'</td><Td>'+data[i].bookName+'</Td><td>'+data[i].bookPrice+'</td>'+                     '<td><a href="/test_maven/updateBook?id=${book.id }">修改</a> <a href="#">删除</a></td> </tr>');
                }
                },'json')
        }
    });
})</script><title>Insert title here</title></head><body><h1>所有书籍</h1><table id="tab">
 <tr><th>书籍Id</th><th>书名</th><th>价格</th><th>操作</th></tr>
 <c:forEach items="${books }" var="book">

 <tr><td>${book.id }</td><Td>${book.bookName }</Td><td>${book.bookPrice }</td>
 <td><a href="/test_maven/updateBook?id=${book.id }">修改</a> <a href="#">删除</a></td>
 </tr>

 </c:forEach></table>
登录后复制
登录后复制

               



本文将为大家介绍一款非常赞的jQuery分页插件:jqPaginator。

jqpaginator简洁、高度自定义的jquery分页组件,适用于多种应用场景。

简介

现在网上各种各样的分页组件很多,但是很难找到十分”称心如意”的,于是jqPaginator诞生了。

我心中理想的分页组件,要不受CSS框架限制,可以使用在各种不同风格中的网页中。以我浅显的经验来看,要达到这个目标,关键的一点就是高度自定义的Html结构。所以jqPaginator努力做到合理范围内的自定义,使其灵活的使用了各种不同的场景。

效果截图:

013027_u0hW_1456287

使用说明

例子

用法很简单,首先引入jQuery和jqPaginator,之后就可以初始化分页了

$('#id').jqPaginator({
    totalPages: 100,
    visiblePages: 10,
    currentPage: 1,

    first: '<li class="first"><a href="javascript:void(0);">First</a></li>',
    prev: '<li class="prev"><a href="javascript:void(0);">Previous</a></li>',
    next: '<li class="next"><a href="javascript:void(0);">Next</a></li>',
    last: '<li class="last"><a href="javascript:void(0);">Last</a></li>',
    page: '<li class="page"><a href="javascript:void(0);">{{page}}</a></li>',
    onPageChange: function (num) {
        $('#text').html('当前第' + num + '页');
    }});
登录后复制
登录后复制

上例就是第一Demo,Bootstrap风格的分页。具体参数稍后介绍,这里要了解的是,如果使用的不是id,而是class,就会初始化该class的所有元素,实现上面”两个分页联动”的效果。

参数

参数 默认值 说明
totalPages 0 设置分页的总页数
totalCounts 0 设置分页的总条目数
pageSize 0 设置每一页的条目数
注意:要么设置totalPages,要么设置totalCounts + pageSize,否则报错;设置了totalCounts和pageSize后,会自动计算出totalPages。
currentPage 1 设置当前的页码
visiblePages 7 设置最多显示的页码数(例如有100也,当前第1页,则显示1 - 7页)
disableClass ‘disabled’ 设置首页,上一页,下一页,末页的”禁用状态”样式
activeClass ‘active’ 设置当前页码样式
first (无) 设置”首页”的Html结构
prev (无) 设置”上一页”的Html结构
next (无) 设置”下一页”的Html结构
last (无) 设置”末页”的Html结构
page (无) 设置页码的Html结构,其中可以使用{{page}}代表当前页,{{totalPages}}代表总页数,{{totalCounts}}代表总条目数(例如:上面的”极简风格”的Demo,就是使用了{{占位符}},并将visiblePages设为1实现的。)
wrapper (无) 分页结构的Html包裹,例如:

,一般不会用到
onPageChange (无) 回调函数,当换页时触发(包括初始化第一页的时候),会传入”目标页”的页码

扩展方法

jqPaginator提供了两个扩展方法,方便初始化后对组件进行操作。

$('#id').jqPaginator('option', options)
登录后复制
登录后复制

初始化后,动态修改配置

$('#id').jqPaginator('option', {
    currentPage: 1});
登录后复制
登录后复制
$('#id').jqPaginator('destroy')
登录后复制
登录后复制

销毁jqPaginator

$('#id').jqPaginator('destroy');
登录后复制
登录后复制

相关资料

  • 源码下载:https://github.com/keenwon/jqPaginator

  • 官方地址:http://jqpaginator.keenwon.com/

        </p>
登录后复制
登录后复制

推荐解决方案(结合后台):
首页通过一个具体后台查询跳转过来,带上总页数等数据,方便初始化分页导航条,并在table中显示第一页数据。
后续点击每一页按钮都发出ajax请求,并将该页数据作为json返回,填充到table中,这样做的好处是,不用每一次都查询总条数,只需要查询当前页面数据即可,速度快,减少数据库负担。具体代码如下,仅供参考:

<script type="text/javascript">$(function(){
    $('#page').jqPaginator({        //totalPages: 100,
        pageSize:2,//每一页多少条记录
        totalCounts:${totalCount},
        visiblePages: 10,
        currentPage: 1,

        first: '<li class="first"><a href="javascript:void(0);">First</a></li>',
        prev: '<li class="prev"><a href="javascript:void(0);">Previous</a></li>',
        next: '<li class="next"><a href="javascript:void(0);">Next</a></li>',
        last: '<li class="last"><a href="javascript:void(0);">Last</a></li>',
        page: '<li class="page"><a href="javascript:void(0);">{{page}}</a></li>',
        onPageChange: function (num) {
           // alert('当前第' + num + '页');
            //此处可以ajax加载下一页数据
            $.get('ajaxpage',{num:num},function(data){
                $("#tab").html('<tr><th>书籍Id</th><th>书名</th><th>价格</th><th>操作</th></tr>');                for(var i=0;i<data.length;i++){

                    $("#tab").append('<tr><td>'+data[i].id+'</td><Td>'+data[i].bookName+'</Td><td>'+data[i].bookPrice+'</td>'+                     '<td><a href="/test_maven/updateBook?id=${book.id }">修改</a> <a href="#">删除</a></td> </tr>');
                }
                },'json')
        }
    });
})</script><title>Insert title here</title></head><body><h1>所有书籍</h1><table id="tab">
 <tr><th>书籍Id</th><th>书名</th><th>价格</th><th>操作</th></tr>
 <c:forEach items="${books }" var="book">

 <tr><td>${book.id }</td><Td>${book.bookName }</Td><td>${book.bookPrice }</td>
 <td><a href="/test_maven/updateBook?id=${book.id }">修改</a> <a href="#">删除</a></td>
 </tr>

 </c:forEach></table>
登录后复制
登录后复制

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

怎样做出京东商品详情的放大镜效果

javascript如何实现小球跳动效果

以上就是如何使用jquery的分页插件的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
收藏 点赞
上一篇:如何使用css3实现3d立体特效 下一篇:细说图片懒加载以及预加载
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
  • vue.js路由失效如何处理
    2018-06-15 15:55:18
  • 怎样使用js解析数据库(附代码)
    2018-06-15 15:49:00
  • 怎样在项目中使用js绑定DOM事件
    2018-06-15 15:46:15
  • 怎样操作JS字符串与特殊字符
    2018-06-15 15:42:38
  • 如何在项目中使用jQuery内each方法
    2018-06-15 15:40:34
  • 如何利用jquery做出文件上传加载
    2018-06-15 15:39:32
  • 怎样对JS原型与原型链进行使用
    2018-06-15 15:37:14
  • Angular CLI+Angular 5实战项目演示
    2018-06-15 15:34:21
  • 使用jQuery替换节点元素(附代码)
    2018-06-15 15:22:51
  • Servlet3.0+JS进行Ajax交互
    2018-06-15 15:21:46
最新问题
JS怎么监听设备陀螺仪 5种传感器事件实现3D交互效果 在JavaScript中实现陀螺仪监听以支持3D交互,需通过devicemotion事件获取旋转速率数据并进行处理。具体步骤如下:1.添加devicemotion事件监听器以捕获设备运动数据;2.从event.rotationRate中提取alpha、beta、gamma值,分别代表绕X、Y、Z轴的旋转速率(度/秒);3.对原始数据进行平滑处理,如使用移动平均或卡尔曼滤波器减少噪声;4.将过滤后的数据转换为弧度并应用于3D对象的旋转矩阵更新,例如在Three.js中更新对象的rotation.x
2025-06-21 23:33:02
797
js如何判断变量是否为NaN NaN检测的3种可靠方法 判断变量是否为NaN的方法有三种:1.使用isNaN()函数需注意类型转换问题;2.使用ES6的Number.isNaN()更精准;3.利用NaN不等于自身的特性。isNaN()会尝试将值转为数字,如isNaN("hello")返回true,因此需结合typeof判断类型;Number.isNaN()直接检测是否为NaN,不会进行类型转换,推荐使用;通过val!==val可判断NaN,但可读性差。处理可能返回NaN的运算时,应提前验证输入或用Number.isNaN()处理结果。NaN不等于自身
2025-06-21 23:03:03
140
js如何实现手势识别 常见手势检测与响应方案 JavaScript实现手势识别的核心在于监听touchstart、touchmove和touchend事件,并根据触摸点变化判断手势类型;1.原生触摸事件无需依赖但需手动实现逻辑;2.第三方库如Hammer.js提供现成手势支持;3.机器学习方案可识别复杂手势但需训练模型;滑动手势通过计算deltaX/deltaY并比较阈值实现;多点触控手势可通过Hammer.js启用pinch/rotate处理缩放与旋转;性能优化可通过减少DOM操作、使用requestAnimationFrame及节流技术
2025-06-21 22:51:02
556
js怎样阻止事件冒泡 js阻止事件冒泡的3种常用方式解析 在JavaScript中,阻止事件冒泡是指阻止事件从当前元素向父元素传播。主要方法包括使用stopPropagation()、cancelBubble(IE特有)和returnfalse。1.stopPropagation()是标准方法,适用于现代浏览器;2.cancelBubble是IE早期版本的属性,虽然部分现代浏览器也支持,但推荐优先使用stopPropagation();3.returnfalse不仅能阻止冒泡,还会阻止默认行为,因此需谨慎使用。此外,stopImmediatePropa
2025-06-21 22:33:02
982
js打包webpack配置_js打包webpack流程详解 Webpack配置用于定义代码处理方式及打包流程,其核心是通过webpack.config.js文件中的对象配置实现。1.配置包含入口(entry)、输出(output)、Loader(module.rules)、优化(optimization)等关键部分;2.打包流程包括读取配置、解析入口、转换模块、打包、优化及输出文件;3.为减小打包体积,可移除无用库、启用压缩、使用TreeShaking、优化图片、进行代码分割;4.Loader用于处理不同类型的文件,如babel-loader转译ES6+
2025-06-21 22:27:02
280
js怎样实现密码强度检测 密码强度实时检测的完整实现方案 密码强度检测通过定义评分规则并计算得分实现,核心步骤包括:1.设定长度、字符类型、常见密码等规则;2.编写JavaScript代码进行评分;3.结合HTML实现实时反馈。为防止弱密码,可采取强制策略、黑名单、提示、可视化和双重验证。金融类应用需最严格规则,社交类和内部系统可适度调整。密码找回应通过邮箱、安全问题或客服实现,兼顾安全与体验。
2025-06-21 20:24:02
515
js如何实现简单的拖拽排序 列表排序的3种交互实现方法! 实现拖拽排序需监听dragstart、dragover、drop事件并动态调整DOM位置,具体步骤为:1.为列表项添加draggable属性;2.在dragstart中记录拖拽元素;3.在dragover中阻止默认行为;4.在drop中根据鼠标位置交换元素位置。性能优化方面可通过requestAnimationFrame延迟更新、限制拖拽频率等方式减少重绘重排。交互方式除原生拖拽外还包括上下箭头按钮、拖拽手柄和数字输入框。持久化排序结果可通过获取排序后的ID数组并发送至后端保存,后端更新数据库中
2025-06-21 18:39:02
308
js如何检测蓝牙设备 Web蓝牙API使用实战教程 要检测蓝牙设备在JavaScript中主要通过Web蓝牙API实现,其核心是navigator.bluetooth对象。首先检查浏览器是否支持该API,若不支持则提示用户更换或升级浏览器;接着使用requestDevice()方法请求用户选择设备,并连接到所选设备的GATT服务器;然后获取指定服务和特征值并读取数据。为处理权限问题,需捕获requestDevice()调用时的错误,若用户拒绝授权则提供友好提示说明原因及启用方式。优化连接体验方面,可显示加载状态、设置超时机制以及监听gattser
2025-06-21 18:36:02
400
js怎样实现平滑滚动 js实现平滑滚动的4种优化方案 实现平滑滚动的核心在于控制滚动速度和动画时长,1.使用window.scrollTo或element.scrollTo配合requestAnimationFrame模拟动画效果;2.通过缓动函数使滚动更自然;3.优化性能时减少重排重绘,优先使用CSStransform;4.处理兼容性可使用polyfill或兼容性前缀;5.实现滚动劫持需监听wheel事件并自定义滚动逻辑,但需注意用户体验与可访问性。
2025-06-21 18:27:02
811
js怎样实现文件拖拽上传 js文件拖拽上传的4步完整实现 文件拖拽上传的核心步骤是监听拖拽事件、获取文件信息和发送文件到服务器。具体为:1.监听dragover和drop事件;2.通过event.dataTransfer.files获取文件列表;3.使用FormData结合XMLHttpRequest或FetchAPI上传文件。优化用户体验需注意:提供视觉反馈、显示上传进度条、清晰的错误处理、客户端验证文件类型和大小、支持多文件上传。大文件上传可通过分片上传、断点续传、使用专业库、优化服务器与客户端性能实现。安全措施包括:服务器端验证文件类型、扫描文件
2025-06-21 16:57:01
220
相关专题
更多>
  • java项目创建
  • C++编译错误大全
  • golang数组大全
  • python创建txt文件教程
  • php图片处理大全
  • java三大框架介绍
  • C++语法错误及解决方法大全
  • golang数组使用方法
热门推荐
  • JS怎么监听设备陀螺仪 5种传感器事件实现3D交互效果
  • js如何判断变量是否为NaN NaN检测的3种可靠方法
  • js如何实现手势识别 常见手势检测与响应方案
  • js怎样阻止事件冒泡 js阻止事件冒泡的3种常用方式解析
  • js打包webpack配置_js打包webpack流程详解
开源免费商场系统广告
热门教程
更多>
相关推荐
热门推荐
最新课程
  • ThinkPHP5快速开发企业站点[全程实录]
    ThinkPHP5快速开发企业站点[全程实录]
    399830次学习
    收藏
  • PHP Workerman 基础与实战:即时通讯聊天系统(ThinkPHP6)
    PHP Workerman 基础与实战:即时通讯聊天系统(ThinkPHP6)
    51577次学习
    收藏
  • Thinkphp3.2.3个人博客开发
    Thinkphp3.2.3个人博客开发
    212817次学习
    收藏
  • 最新ThinkPHP 5.1全球首发视频教程(60天成就PHP大牛线上培训班课)
    最新ThinkPHP 5.1全球首发视频教程(60天成就PHP大牛线上培训班课)
    1459032次学习
    收藏
  • phpStudy极速入门视频教程
    phpStudy极速入门视频教程
    527012次学习
    收藏
  • 独孤九贱(4)_PHP视频教程
    独孤九贱(4)_PHP视频教程
    1235379次学习
    收藏
  • PHP实战天龙八部之仿爱奇艺电影网站
    PHP实战天龙八部之仿爱奇艺电影网站
    764702次学习
    收藏
  • 独孤九贱(1)_HTML5视频教程
    独孤九贱(1)_HTML5视频教程
    611595次学习
    收藏
  • PHP新手语法线上课程教学
    PHP新手语法线上课程教学
    530次学习
    收藏
  • 支付宝沙箱支付(个人也能用的支付)
    支付宝沙箱支付(个人也能用的支付)
    2599次学习
    收藏
  • 麻省理工大佬Python课程
    麻省理工大佬Python课程
    30210次学习
    收藏
  • Swoole5 Hyperf3 php8新版本协程框架讲说
    Swoole5 Hyperf3 php8新版本协程框架讲说
    11769次学习
    收藏
  • 【web前端】Node.js快速入门
    【web前端】Node.js快速入门
    14822次学习
    收藏
最新下载
更多>
  • 驾照考试驾校HTML5网站模板
网站特效
网站源码
网站素材
前端模板
  • [表单按钮] jQuery企业留言表单联系代码
  • [播放器特效] HTML5 MP3音乐盒播放特效
  • [菜单导航] HTML5炫酷粒子动画导航菜单特效
  • [表单按钮] jQuery可视化表单拖拽编辑代码
  • [播放器特效] VUE.JS仿酷狗音乐播放器代码
  • [html5特效] 经典html5推箱子小游戏
  • [图片特效] jQuery滚动添加或减少图片特效
  • [相册特效] CSS3个人相册封面悬停放大特效
  • [电商源码] jeestore商城系统
  • [电商源码] 简单好用的商城系统st-shop
  • [电商源码] 佳蓝智能应答系统
  • [电商源码] 新力房产网
  • [app源码] 无心版移动短信发送
  • [app源码] 智能移动网站管理系统(SmartMobile)
  • [电商源码] 极品模板微商城订单系统
  • [电商源码] SDCMS-B2C商城网站管理系统
  • [网站素材] 三维等距城市建筑设计矢量模板
  • [网站素材] 绿色未来植树节愿景矢量插图
  • [网站素材] 手绘六一儿童节背景矢量素材
  • [网站素材] 欧式奢华风格竖版名片设计下载
  • [网站素材] 室内设计方案特价宣传单设计下载
  • [网站素材] 蓝色极简风格夏日主题竖版banner下载
  • [网站素材] 可爱的夏天元素矢量素材(EPS+PNG)
  • [网站素材] 四个红的的 2023 毕业徽章矢量素材(AI+EPS+PNG)
  • [前端模板] 驾照考试驾校HTML5网站模板
  • [前端模板] 驾照培训服务机构宣传网站模板
  • [前端模板] HTML5房地产公司宣传网站模板
  • [前端模板] 新鲜有机肉类宣传网站模板
  • [前端模板] 响应式天气预报宣传网站模板
  • [前端模板] 房屋建筑维修公司网站CSS模板
  • [前端模板] 响应式志愿者服务网站模板
  • [前端模板] 创意T恤打印店网站HTML5模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号

微信扫码
关注PHP中文网服务号

技术交流群

QQ扫码
加入技术交流群

app下载

扫描下载App

PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • PHP学习

  • 技术支持

  • 返回顶部