分页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 ...
随机推荐
- SQL中获取最近的N个半年度
直接上代码: --获取往前推的N个半年度 CREATE FUNCTION F3_GetRecentNHalfYear ( @N INT ) RETURNS @Result TABLE ( Year S ...
- Javascript中substr和substring的区别
由于在项目中有需要对字符串进行截取,然后手残使用了IDE自动提示的substr,没想那么多以为substr和substring没多大区别. 然而并不是,且听我一一道来. 1. substr(index ...
- cocos2d-x之value
bool HelloWorld::init() { if ( !Layer::init() ) { return false; } Size visibleSize = Director::getIn ...
- FZU Problem 2150 Fire Game
Problem 2150 Fire Game Accept: 145 Submit: 542 Time Limit: 1000 mSec Memory Limit : 32768 KB P ...
- jquery发送异步请求
var remark = $("#"+id+"remark").val(); var shopid = $("#"+id+"sho ...
- Proc-fs 编程
一.简介 Proc文件系统是Linux系统上的一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息,甚至可以通过更 ...
- c++ Windows Socket实现最简单的C/S网络通信(TCP)
1.服务器端代码: #include<iostream> #include<WinSock2.h> #pragma comment(lib, "ws2_32.lib& ...
- LeetCode 2 Add Two Sum 解题报告
LeetCode 2 Add Two Sum 解题报告 LeetCode第二题 Add Two Sum 首先我们看题目要求: You are given two linked lists repres ...
- css3中的多列布局columns详解
columns语法:columns:[ column-width ] || [ column-count ]设置或检索对象的列数和每列的宽度 其中:[ column-width ]:设置或检索对象每列 ...
- 如何在HTML不同的页面中,共用头部与尾部?
一.asp语言和PHP语言 首先制作一个头部文件head.asp,或者一个底部文件foot.asp.如主页是index.asp,调用头部代码是在index.asp文件代码的开始位置(第一个标记后面,& ...