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实现及其应用的更多相关文章

  1. Django-rest-framework 接口实现 分页:(Pagination) 解析器(Parser) 渲染器(renderer)

    分页:(Pagination) rest_framework 中已经定义好了 3 种 分页模式 from rest_framework.pagination import PageNumberPagi ...

  2. amazeui学习笔记--css(常用组件11)--分页Pagination

    amazeui学习笔记--css(常用组件11)--分页Pagination 一.总结 1.分页使用:还是ul包li的形式: 分页组件,<ul> / <ol> 添加 .am-p ...

  3. 关于分页Pagination的使用

    在这个例子当中,用的是ssm框架整合,并且用的是Pagination实现分页 先来看一下分页中用到的类的源码 Paginable.java package cn.itcast.common.page; ...

  4. ElementUI分页Pagination自动到第一页

    当数据量过多时,使用分页请求数据. 设置分页的页数自动回到第一页. 例: <div class="pagination"> <el-pagination back ...

  5. 分页-pagination

    需先引入jQuery,再引入pagination组件 <script src="jquery.js"></script> <script src=&q ...

  6. 应用五:Vue之ElementUI 表格Table与分页Pagination组件化

    (注:本文适用于有一定Vue基础或开发经验的读者,文章就知识点的讲解不一定全面,但却是开发过程中很实用的) 在平时的web项目开发过程中,列表分页查询展示应用的很频繁,为了便于阅读并减少代码的冗余,所 ...

  7. 分页--pagination.js

    var pagination = function (thispage, totalpage, ulele, firstlast) { ulele.html(''); var prevCss, nex ...

  8. 15 自定义分页pagination全局组件

    1.Pagination.vue <template> <el-pagination @size-change="handleSizeChange" @curre ...

  9. mysql分页pagination

    http://www.phpjabbers.com/php--mysql-select-data-and-split-on-pages-php25.html returns 20 records so ...

随机推荐

  1. 算法(三)粒子群算法PSO的介绍

    一.引言 在讲算法之前,先看两个例子: 例子一:背包问题,一个书包,一堆物品,每个物品都有自己的价值和体积,装满书包,使得装的物品价值最大. 例子二:投资问题,n个项目,第i个项目投资为ci 收益为p ...

  2. EXECL文件导入数据库

    Execl数据导入数据库: 注意事项:execl中的列名与列数要与数据库的列名和列数一致.值类型一致,列名不一致的话可在导入的时候,给字段起别名,确定保持一致 v 界面代码: <div> ...

  3. 终于完成了Josephus的C语言实现啦~~

    /*以下程序用来解决Josephus问题,现在只是完成了M>N的情况,2015-08-20 22:22:20*//*发现一个问题:数组的赋值问题:char People[N]={1};并不代表所 ...

  4. AngularJS模块加载

    配置块 在模块的加载阶段,AngularJS会在提供者注册和配置的过程中对模块进行配置.在整个AngularJS的工作流中,这个阶段是唯一能够在应用启动前进行修改的部分. angular.module ...

  5. Linux shell basic3 dd wc comm chmod ls

    Generating files of any size /dev/zerois a character special device, which infinitely returns the ze ...

  6. [转]让Windows Server 2008 + IIS 7+ ASP.NET 支持10万并发请求

    本文转自:http://www.cnblogs.com/dudu/archive/2009/11/10/1600062.html 今天下午17点左右,博客园博客站点出现这样的错误信息: Error S ...

  7. CentOS 6.5上MySQL安装部署与入门。

    centos 6.5 yum 安装mysql1. 安装软件:yum install -y mysql-server mysql mysql-devel2.启动服务:service mysqld sta ...

  8. 【ASP.NET 进阶】根据IP地址进行百度地图定位

    昨天有完成一个[ASP.NET 进阶]根据IP返回对应位置信息 的小Demo,既然可以通过IP获得位置信息,那当然可以通过位置信息的经纬度获取IP的当前定位了,虽然与实际地址偏移较大,毕竟不是GPRS ...

  9. nginx 一二事(3) - 反向代理以及负载均衡

    先来说说正向代理 就是普通的代理,记得高中年代偷跑去网吧是要办卡的 题外话: 就是这货...相信很多80同龄人都有吧...    回到正题,那正向代理就不让你直接访问网络,而需要登录一下网吧的某个系统 ...

  10. Android之数据存储----使用LoaderManager异步加载数据库

    一.各种概念: 1.Loaders: 适用于Android3.0以及更高的版本,它提供了一套在UI的主线程中异步加载数据的框架.使用Loaders可以非常简单的在Activity或者Fragment中 ...