分页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 ...
随机推荐
- MySQL之ALTER
1:删除列 ALTER TABLE [表名字] DROP [列名称] 2:增加列 ALTER TABLE [表名字] ADD [列名称] INT NOT NULL COMMENT '注释说明' 3:修 ...
- oracle表空间相关
数据库被划分为若干个表空间,每个表空间内保存一组相关的逻辑对象.每个表空间由一个或者多个数据文件组成.oracle中的数据逻辑上存储在表空间里,物理上存储在属于该表空间的数据文件里.表空间是用户和物理 ...
- 烂泥:kickstart无人值守安装CentOS6.5
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 在本次实验进行之前,首先我们要把公司的网络环境进行介绍. 注意这个网络拓扑图,也是生产环境的一个实例.同时服务器192.168.1.214已关闭ipta ...
- Openwrt LuCI模块练习详细步骤
前言 又到了成胖子^_^每周一博的时间了.最近在学习openwrt luci方面的知识,为了贯穿整个知识体系,练习题目为: 通过页面配置周期性地往/tmp/addtest文件写入内容和时间戳 1.在w ...
- [分享]4412开发板Android教程——Android开发环境搭建
分享视频链接:http://pan.baidu.com/s/1o6tgEeQ 本文转载:www.topeetboard.com 下载和安装Android应用的开发环境 新建Android虚拟环境 An ...
- [转]Display PDF within web browser using MVC3
本文转自:http://www.codeproject.com/Tips/697733/Display-PDF-within-web-browser-using-MVC Introduction I ...
- cnblogs美化及插件
1.vp计数 http://www.amazingcounters.com 2.来源地图 http://clustrmaps.com 2.1来源地图 http://www.flagcounter.co ...
- uva 11054 wine trading in gergovia (归纳【好吧这是我自己起的名字】)——yhx
As you may know from the comic \Asterix and the Chieftain's Shield", Gergovia consists of one s ...
- 微信公众号开发之LBS
百度地图Web服务api:http://lbsyun.baidu.com/index.php?title=webapi 1.测距 Route Matrix API v2.0:http://lbsyun ...
- AC日记——产生数 codevs 1009 (弗洛伊德)(组合数学)
1009 产生数 2002年NOIP全国联赛普及组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Descriptio ...