分页pagination实现及其应用
1、分页jquery.page.js
//分页插件
/**
2014-08-05 ch
**/
(function ($) {
var ms = {
init: function (obj, args) {
return (function () {
ms.fillHtml(obj, args);
ms.bindEvent(obj, args);
})();
},
//填充html
fillHtml: function (obj, args) {
return (function () {
obj.empty();
//上一页
if (args.current > 1) {
obj.append('<a href="javascript:;" class="prevPage"><i class="fa fa-angle-double-left" aria-hidden="true"></i></a>');
} else {
obj.remove('.prevPage');
obj.append('<span class="disabled"><i class="fa fa-angle-double-left" aria-hidden="true"></i></span>');
}
//中间页码
if (args.current != 1 && args.current >= 4 && args.pageCount != 4) {
obj.append('<a href="javascript:;" class="tcdNumber">' + 1 + '</a>');
}
if (args.current - 2 > 2 && args.current <= args.pageCount && args.pageCount > 5) {
obj.append('<span class="tcdPageCode-ellipsis">...</span>');
}
var start = args.current - 2, end = args.current + 2;
if ((start > 1 && args.current < 4) || args.current == 1) {
end++;
}
if (args.current > args.pageCount - 4 && args.current >= args.pageCount) {
start--;
}
for (; start <= end; start++) {
if (start <= args.pageCount && start >= 1) {
if (start != args.current) {
obj.append('<a href="javascript:;" class="tcdNumber">' + start + '</a>');
} else {
obj.append('<span class="current">' + start + '</span>');
}
}
}
if (args.current + 2 < args.pageCount - 1 && args.current >= 1 && args.pageCount > 5) {
obj.append('<span class="tcdPageCode-ellipsis">...</span>');
}
if (args.current != args.pageCount && args.current < args.pageCount - 2 && args.pageCount != 4) {
obj.append('<a href="javascript:;" class="tcdNumber">' + args.pageCount + '</a>');
}
//下一页
if (args.current < args.pageCount) {
obj.append('<a href="javascript:;" class="nextPage"><i class="fa fa-angle-double-right"></i></a>');
} else {
obj.remove('.nextPage');
obj.append('<span class="disabled"><i class="fa fa-angle-double-right"></i></span>');
}
})();
},
//绑定事件
bindEvent: function (obj, args) {
return (function () { $(obj).find('.tcdNumber').off("click").on("click", function () {
var current = parseInt($(this).text());
ms.fillHtml(obj, { "current": current, "pageCount": args.pageCount });
if (typeof (args.backFn) == "function") {
args.backFn(current);
}
});
// 不用这个是为了适应那种每次查询之后,分页条数变化的情况,而且这种情况很常见,
// 如果采用下面这种方式,会出现多次绑定,多次查询的情况。
//obj.on("click","a.tcdNumber",function(){
// var current = parseInt($(this).text());
// ms.fillHtml(obj, { "current": current, "pageCount": args.pageCount });
// if (typeof (args.backFn) == "function") {
// args.backFn(current);
// }
//}); $(obj).find('.prevPage').off('click').on("click", function () {
var current = parseInt(obj.children("span.current").text());
ms.fillHtml(obj, { "current": current - 1, "pageCount": args.pageCount });
if (typeof (args.backFn) == "function") {
args.backFn(current - 1);
}
}); //上一页
//obj.on("click","a.prevPage",function(){
// var current = parseInt(obj.children("span.current").text());
// ms.fillHtml(obj,{"current":current-1,"pageCount":args.pageCount});
// if(typeof(args.backFn)=="function"){
// args.backFn(current-1);
// }
//}); $(obj).find('.nextPage').off('click').on("click", function () {
var current = parseInt(obj.children("span.current").text());
ms.fillHtml(obj, { "current": current + 1, "pageCount": args.pageCount });
if (typeof (args.backFn) == "function") {
args.backFn(current + 1);
}
}); //下一页
//obj.on("click","a.nextPage",function(){
// var current = parseInt(obj.children("span.current").text());
// ms.fillHtml(obj,{"current":current+1,"pageCount":args.pageCount});
// if(typeof(args.backFn)=="function"){
// args.backFn(current+1);
// }
//}); })();
}
}
$.fn.createPage = function (options) {
var args = $.extend({
pageCount: 10,
current: 1,
backFn: function () { }
}, options);
ms.init(this, args);
}
})(jQuery); //代码整理:懒人之家 www.lanrenzhijia.com
2、使用方法
2.1 js的应用
首先把jquery.page.js引入
第二js的关键代码
$(".tcdPageCode").createPage({
pageCount: 总页数,
current: 当前页,
backFn: function (p) {
//单击回调方法,p是当前页码
查询方法(p);
}
});
2.2 样式代码
.tcdPageCode {
padding: 15px 20px;
color: #ccc;
display: inline-block;
padding-left:;
margin: 20px 0;
border-radius: 4px;
}
.tcdPageCode a {
display: inline-block;
color: #0D0D0D;
display: inline-block;
height: 25px;
line-height: 25px;
padding: 6px 12px;
border: 1px solid #ddd;
vertical-align: middle;
padding: 6px 12px;
line-height: 1.42857143;
text-decoration: none;
}
.tcdPageCode span.current {
display: inline-block;
height: 25px;
line-height: 25px;
padding: 6px 12px;
color: #0D0D0D;
background-color: #CCCCCC;
border: 1px solid #ddd;
vertical-align: middle;
line-height: 1.42857143;
text-decoration: none;
}
.tcdPageCode-ellipsis {
display: inline-block;
width: 24px;
text-align: center;
}
.tcdPageCode span.disabled {
display: inline-block;
height: 25px;
line-height: 25px;
padding: 6px 12px;
color: #bfbfbf;
background: #f2f2f2;
border: 1px solid #bfbfbf;
border-radius: 4px;
vertical-align: middle;
}
至于例子,不想写了...
分页pagination实现及其应用的更多相关文章
- Django-rest-framework 接口实现 分页:(Pagination) 解析器(Parser) 渲染器(renderer)
分页:(Pagination) rest_framework 中已经定义好了 3 种 分页模式 from rest_framework.pagination import PageNumberPagi ...
- amazeui学习笔记--css(常用组件11)--分页Pagination
amazeui学习笔记--css(常用组件11)--分页Pagination 一.总结 1.分页使用:还是ul包li的形式: 分页组件,<ul> / <ol> 添加 .am-p ...
- 关于分页Pagination的使用
在这个例子当中,用的是ssm框架整合,并且用的是Pagination实现分页 先来看一下分页中用到的类的源码 Paginable.java package cn.itcast.common.page; ...
- ElementUI分页Pagination自动到第一页
当数据量过多时,使用分页请求数据. 设置分页的页数自动回到第一页. 例: <div class="pagination"> <el-pagination back ...
- 分页-pagination
需先引入jQuery,再引入pagination组件 <script src="jquery.js"></script> <script src=&q ...
- 应用五:Vue之ElementUI 表格Table与分页Pagination组件化
(注:本文适用于有一定Vue基础或开发经验的读者,文章就知识点的讲解不一定全面,但却是开发过程中很实用的) 在平时的web项目开发过程中,列表分页查询展示应用的很频繁,为了便于阅读并减少代码的冗余,所 ...
- 分页--pagination.js
var pagination = function (thispage, totalpage, ulele, firstlast) { ulele.html(''); var prevCss, nex ...
- 15 自定义分页pagination全局组件
1.Pagination.vue <template> <el-pagination @size-change="handleSizeChange" @curre ...
- mysql分页pagination
http://www.phpjabbers.com/php--mysql-select-data-and-split-on-pages-php25.html returns 20 records so ...
随机推荐
- 算法(三)粒子群算法PSO的介绍
一.引言 在讲算法之前,先看两个例子: 例子一:背包问题,一个书包,一堆物品,每个物品都有自己的价值和体积,装满书包,使得装的物品价值最大. 例子二:投资问题,n个项目,第i个项目投资为ci 收益为p ...
- EXECL文件导入数据库
Execl数据导入数据库: 注意事项:execl中的列名与列数要与数据库的列名和列数一致.值类型一致,列名不一致的话可在导入的时候,给字段起别名,确定保持一致 v 界面代码: <div> ...
- 终于完成了Josephus的C语言实现啦~~
/*以下程序用来解决Josephus问题,现在只是完成了M>N的情况,2015-08-20 22:22:20*//*发现一个问题:数组的赋值问题:char People[N]={1};并不代表所 ...
- AngularJS模块加载
配置块 在模块的加载阶段,AngularJS会在提供者注册和配置的过程中对模块进行配置.在整个AngularJS的工作流中,这个阶段是唯一能够在应用启动前进行修改的部分. angular.module ...
- Linux shell basic3 dd wc comm chmod ls
Generating files of any size /dev/zerois a character special device, which infinitely returns the ze ...
- [转]让Windows Server 2008 + IIS 7+ ASP.NET 支持10万并发请求
本文转自:http://www.cnblogs.com/dudu/archive/2009/11/10/1600062.html 今天下午17点左右,博客园博客站点出现这样的错误信息: Error S ...
- CentOS 6.5上MySQL安装部署与入门。
centos 6.5 yum 安装mysql1. 安装软件:yum install -y mysql-server mysql mysql-devel2.启动服务:service mysqld sta ...
- 【ASP.NET 进阶】根据IP地址进行百度地图定位
昨天有完成一个[ASP.NET 进阶]根据IP返回对应位置信息 的小Demo,既然可以通过IP获得位置信息,那当然可以通过位置信息的经纬度获取IP的当前定位了,虽然与实际地址偏移较大,毕竟不是GPRS ...
- nginx 一二事(3) - 反向代理以及负载均衡
先来说说正向代理 就是普通的代理,记得高中年代偷跑去网吧是要办卡的 题外话: 就是这货...相信很多80同龄人都有吧... 回到正题,那正向代理就不让你直接访问网络,而需要登录一下网吧的某个系统 ...
- Android之数据存储----使用LoaderManager异步加载数据库
一.各种概念: 1.Loaders: 适用于Android3.0以及更高的版本,它提供了一套在UI的主线程中异步加载数据的框架.使用Loaders可以非常简单的在Activity或者Fragment中 ...