一款基于jQuery的分页插件
1、效果示例

2、代码样式
/*
* 基于jquery 分页插件
* by mao2080@sina.com
*/
$(function (){
window.pageUtil = {
/**
* 构建分页
* @param {Object} divId 要绑定的容器
* @param {Object} data 查询数据
* @param {Object} args 参数信息
*/
page : function(divId, data, args){
var pager = $(divId);
var pageInfo = (!data || !data.data)?{"currPage":0,"pageSize":10,"pageTotal":0,"recordTotal":0,"prevPage":0,"nextPage":0,"firstPage":0,"lastPage":0}:data.data;
pageInfo.pageTotal = this.getPageTotal(pageInfo);
var html = "<table><tbody><tr>";
if(!args.hidePageSelect){
html+='<td>显示行数</td>';
html+='<td>';
if(!args.pageSelect){
html+=this.getPageSelect([10, 20, 50],pageInfo.pageSize);
}else{
html+=this.getPageSelect(args.pageSelect, pageInfo.pageSize);
}
html+='</td>';
}
html+='<td>共'+pageInfo.pageTotal+'页,</td>';
html+='<td>转到</td><td><input type="text" value="'+pageInfo.currPage+'" size="5" class="page-turn"></td>';
html+='<td>页 第'+this.getRowRange(pageInfo)+'项</td>';
html+='<td>,共'+pageInfo.recordTotal+'项</td>';
html+='<td>';
if(pageInfo.currPage == 1){
html+='<input type="button" value="Prev" class="page-prev page-button-disable">';
}else{
html+='<input type="button" value="Prev" class="page-prev">';
}
if(pageInfo.currPage == pageInfo.pageTotal){
html+='<input type="button" value="Next" class="page-next page-button-disable">';
}else{
html+='<input type="button" value="Next" class="page-next">';
}
html+='</td>';
html+='</tr></tbody></table>';
pager.html(html);
pager.find(".page-select").off("change").bind("change", function(){
if(args.query){
args.query(1, $(this).val());
}
});
pager.find(".page-turn").off("keypress").bind("keypress", function(event){
if(event.keyCode == "13" && args.query){
var pages = $(this).val();
if(/^\+?[1-9][0-9]*$/.test(pages) && (pages*1> 0 && pages*1 <= pageInfo.pageTotal)){
args.query(pages, pageInfo.pageSize);
}else{
alert("请输入1~"+pageInfo.pageTotal+"的数字.");
}
}
});
pager.find(".page-prev").off("click").bind("click", function(){
if(args.query && !$(this).hasClass("page-button-disable")){
args.query(pageInfo.currPage-1, pageInfo.pageSize);
}
});
pager.find(".page-next").off("click").bind("click", function(){
if(args.query && !$(this).hasClass("page-button-disable")){
args.query(pageInfo.currPage+1, pageInfo.pageSize);
}
});
},
/**
* 获取总页数
* @param {Object} data
*/
getPageTotal : function(data){
if(data.recordTotal == 0){
return 0;
}
if(data.recordTotal%data.pageSize == 0){
return data.recordTotal/data.pageSize;
}else{
return parseInt(data.recordTotal/data.pageSize)+1;
}
},
/**
* 获取当前数据行数范围
* @param {Object} data
*/
getRowRange : function(data){
if(data.recordTotal == 0){
return "0-0";
}
if(data.currPage < data.pageTotal){
return ((data.currPage-1)*data.pageSize+1)+"-"+(data.currPage)*data.pageSize;
}else{
return ((data.currPage-1)*data.pageSize+1)+"-"+(data.recordTotal);
}
},
/**
* 构建分页下拉框
* @param {Object} pageSelect 分页条数
* @param {Object} pageSize 一页大小
*/
getPageSelect : function(pageSelect, pageSize){
var pageSel = '<select class="page-select">';
for(var i in pageSelect){
if(pageSelect[i] == pageSize){
pageSel+="<option selected='selected' value="+pageSelect[i]+">"+pageSelect[i]+"</option>";
}else{
pageSel+="<option value="+pageSelect[i]+">"+pageSelect[i]+"</option>";
}
}
return pageSel+"</select>";
}
};
});
3、资料下载
一款基于jQuery的分页插件的更多相关文章
- 12款优秀 jQuery Ajax 分页插件和教程
12款优秀 jQuery Ajax 分页插件和教程 在这篇文章中,我为大家收集了12个基于 jQuery 框架的 Ajax 分页插件,这些插件都提供了详细的使用教程和演示.Ajax 技术的出现使得 W ...
- 精心挑选的12款优秀 jQuery Ajax 分页插件和教程
在这篇文章中,我为大家收集了12个基于 jQuery 框架的 Ajax 分页插件,这些插件都提供了详细的使用教程和演示.Ajax 技术的出现使得 Web 项目的用户体验有了极大的提高,如今借助优秀的 ...
- 转:精心挑选的12款优秀 jQuery Ajax 分页插件和教程
在这篇文章中,我为大家收集了12个基于 jQuery 框架的 Ajax 分页插件,这些插件都提供了详细的使用教程和演示.Ajax 技术的出现使得 Web 项目的用户体验有了极大的提高,如今借助优秀的 ...
- 12款优秀jQuery Ajax分页插件和教程
在这篇文章中,我为大家收集了12个基于 jQuery 框架的 Ajax 分页插件,这些插件都提供了详细的使用教程和演示.Ajax 技术的出现使得 Web 项目的用户体验有了极大的提高,如今借助优秀的 ...
- 基于jquery 的分页插件,前端实现假分页效果
上次分享了一款jquery插件,现在依旧分享这个插件,不过上一次分享主要是用于regular框件,且每一页数据都是从后端获取过来的,这一次的分享主要是讲一次性获取完数据 然后手动进行分页.此需求基本上 ...
- 自编基于jQuery实现分页插件
$(function(){ }); /** * @params dataUrl:请求数据url地址 * @params countUrl:请求数据总数url地址 * @params pageSize: ...
- 两款基于Jquery的图表插件
一.EasyPieChart 页面加载时,运行initPieChart()函数,调用easyPieChart()函数,显示出图表. 代码: var initPieChart = function() ...
- 8款基于Jquery的WEB前端动画特效
1.超炫酷的30个jQuery按钮悬停动画 按钮插件是最常见的jQuery插件之一,因为它用途广泛,而且配置起来最为方便.今天我们要分享的是30个超炫酷的jQuery悬停按钮动画,当我们将鼠标滑过按钮 ...
- 基于jquery下拉列表树插件代码
分享一款基于jquery下拉列表树插件代码.这是一款实用的jquery 树形下拉框 下拉树代码下载.效果图如下: 在线预览 源码下载 实现的代码. html代码: <table width= ...
随机推荐
- 初识MySQL <一>
创建一个 表 create table student( id int(10) not null unique auto_increment primary key, name varchar(30) ...
- The library 'libhostpolicy.dylib' required to execute the application was not found in
.NET Core应用程序需要runtimeconfig.json文件.此JSON文件配置运行时的选项.没有runtimeconfig.json文件,这将失败. > dotnet Program ...
- c#服务端图片打包下载
一,设计多图片打包下载逻辑:1,如果是要拉取腾讯云等资源服务器的图片,2,我们先把远程图片拉取到本地的临时文件夹,3,然后压缩临时文件夹,4,压缩完删除临时文件夹,5,返回压缩完给用户,6,用户就去请 ...
- 在docker下运行mysql
docker pull mysql 从镜像仓库中拉取mysql镜像. 运行镜像 到此mysql在docker容器下运行成功. 使用Navicat连接工具连接到mysql 经过以上步骤就完成了在dock ...
- 企业级开发账号In House ipa发布流程
这两天需要发布一个ipa放到网上供其他人安装,需要用到企业级开发者账号.在网上查了一下资料,感觉没有一个比较完善的流程,于是决定把整个流程写下来,供大家参考. 首先详细说明一下我们的目标,我们需要发布 ...
- 五、WebSocket 链接
一.前端代码: <!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml& ...
- 我所了解的https
http大家多少都有些了解,毕竟要上网的话是肯定会接触到它的.http有个很明显的缺点,就是传输是明文的,很不安全.针对这个情况,就推出了https,也就是http+ssl/tls. 对于明文不安全的 ...
- 深入理解JVM线程模型
1. jvm内存模型在描述jvm线程模型之前,我们先深入的理解下,jvm内存模型.在jvm1.8之前,jvm的逻辑结构和物理结构是对应的.即Jvm在初始化的时候,会为堆(heap),栈(stack), ...
- @PostContruct 连接数据库的问题
在@PostContruct中连接数据库取数据会报错,因为spring的lazy loading机制,不一定所有的bean都已经实例化好了.可以使用ApplicationListener,通过Cont ...
- 中文转换为ASCII码的方式
可以到jdk安装路径: 找到native2ascii.exe文件 双击运行,敲入中文即可获取对应的ASCII编码