<html>
<head>
<title>jQuery Easy-Paging Test</title>
</head>
<body>
<ol id="paging">
<li>Prev</li>
<li>Page #n</li>
<li>Page #n</li>
<li>Page #n</li>
<li>Page #n</li>
<li>Page #n</li>
<li>Page #n</li>
<li>Page #n</li>
<li>Next</li>
</ol>
<script src="jquery.min.js"></script>
<script src="jquery.paging.min.js"></script>
<script src="jquery.easy-paging.js"></script>
<script>
$("#paging").easyPaging(1000, {
onSelect: function(page) {
}
});
</script>
</body>
</html>

懒得去找插件的话将js代码复制回去

jquery.paging.min.js

/*
jQuery paging plugin v1.2.0 23/06/2014
http://www.xarg.org/2011/09/jquery-pagination-revised/ Copyright (c) 2011, Robert Eisele (robert@xarg.org)
Dual licensed under the MIT or GPL Version 2 licenses.
*/
(function(n,v,r){n.fn.paging=function(z,A){var t=this,b={setOptions:function(a){b.a=n.extend(b.a||{lapping:0,perpage:10,page:1,refresh:{interval:10,url:null},format:"",lock:!1,onClick:null,onFormat:function(){},onSelect:function(){return!0},onRefresh:function(){}},a||{});b.a.lapping|=0;b.a.perpage|=0;null!==b.a.page&&(b.a.page|=0);1>b.a.perpage&&(b.a.perpage=10);b.interval&&v.clearInterval(b.interval);b.a.refresh.url&&(b.interval=v.setInterval(function(){n.ajax({url:b.a.refresh.url,success:function(a){if("string"===
typeof a)try{a=n.parseJSON(a)}catch(m){return}b.a.onRefresh(a)}})},1E3*b.a.refresh.interval));b.format=function(a){for(var b=0,g=0,h=1,e={f:[],i:0,h:0,b:5,current:3,l:0,m:0},c,p=/[*<>pq\[\]().-]|[nc]+!?/g,n={"[":"first","]":"last","<":"prev",">":"next",q:"left",p:"right","-":"fill",".":"leap"},f={};c=p.exec(a);)c=""+c,r===n[c]?"("===c?g=++b:")"===c?g=0:h&&("*"===c?(e.i=1,e.h=0):(e.i=0,e.h="!"===c.charAt(c.length-1),e.b=c.length-e.h,(e.current=1+c.indexOf("c"))||(e.current=1+e.b>>1)),e.f[e.f.length]=
{g:"block",j:0,c:0},h=0):(e.f[e.f.length]={g:n[c],j:g,c:r===f[c]?f[c]=1:++f[c]},"q"===c?++e.m:"p"===c&&++e.l);return e}(b.a.format);return b},setNumber:function(a){b.s=r===a||0>a?-1:a;return b},setPage:function(a){function w(a,b,c){c=""+a.onFormat.call(b,c);p=b.value?p+c.replace(/<a/i,'<a data-page="'+b.value+'"'):p+c}if(b.a.lock)return b.a.onSelect(0,t),b;if(r===a){if(a=b.a.page,null===a)return b}else if(b.a.page==a)return b;b.a.page=a|=0;var m=b.s,g=b.a,h,e,c,p,x=1,f=b.format,d,k,l,q,y=f.f.length,
u=y;g.perpage<=g.lapping&&(g.lapping=g.perpage-1);q=m<=g.lapping?0:g.lapping|0;0>m?(c=m=-1,h=Math.max(1,a-f.current+1-q),e=h+f.b):(c=1+Math.ceil((m-g.perpage)/(g.perpage-q)),a=Math.max(1,Math.min(0>a?1+c+a:a,c)),f.i?(h=1,e=1+c,f.current=a,f.b=c):(h=Math.max(1,Math.min(a-f.current,c-f.b)+1),e=f.h?h+f.b:Math.min(h+f.b,1+c)));for(;u--;){k=0;l=f.f[u];switch(l.g){case "left":k=l.c<h;break;case "right":k=e<=c-f.l+l.c;break;case "first":k=f.current<a;break;case "last":k=f.b<f.current+c-a;break;case "prev":k=
1<a;break;case "next":k=a<c}x|=k<<l.j}d={number:m,lapping:q,pages:c,perpage:g.perpage,page:a,slice:[(k=a*(g.perpage-q)+q)-g.perpage,Math.min(k,m)]};for(p="";++u<y;){l=f.f[u];k=x>>l.j&1;switch(l.g){case "block":for(;h<e;++h)d.value=h,d.pos=1+f.b-e+h,d.active=h<=c||0>m,d.first=1===h,d.last=h===c&&0<m,w(g,d,l.g);continue;case "left":d.value=l.c;d.active=l.c<h;break;case "right":d.value=c-f.l+l.c;d.active=e<=d.value;break;case "first":d.value=1;d.active=k&&1<a;break;case "prev":d.value=Math.max(1,a-1);
d.active=k&&1<a;break;case "last":(d.active=0>m)?d.value=1+a:(d.value=c,d.active=k&&a<c);break;case "next":(d.active=0>m)?d.value=1+a:(d.value=Math.min(1+a,c),d.active=k&&a<c);break;case "leap":case "fill":d.pos=l.c;d.active=k;w(g,d,l.g);continue}d.pos=l.c;d.last=d.first=r;w(g,d,l.g)}t.length&&(n("a",t.html(p)).click(g.onClick||function(a){a.preventDefault();a=this;do if("a"===a.nodeName.toLowerCase())break;while(a=a.parentNode);b.setPage(n(a).data("page"));b.o&&(v.location=a.href)}),b.o=g.onSelect.call({number:m,
lapping:q,pages:c,slice:d.slice},a,t));return b}};return b.setNumber(z).setOptions(A).setPage()}})(jQuery,this);

jquery.easy-paging.js

/**
* @license jQuery paging plugin v1.1.1 21/06/2014
* http://www.xarg.org/2011/09/jquery-pagination-revised/
*
* Copyright (c) 2011, Robert Eisele (robert@xarg.org)
* Dual licensed under the MIT or GPL Version 2 licenses.
**/ (function($) { $["fn"]["easyPaging"] = function(num, o) { if (!$["fn"]["paging"]) {
return this;
} // Normal Paging config
var opts = {
"perpage": 10,
"elements": 0,
"page": 1,
"format": "",
"lapping": 0,
"onSelect": function() {
}
}; $["extend"](opts, o || {}); var $li = $("li", this); var masks = {}; $li.each(function(i) { if (0 === i) {
masks.prev = this.innerHTML;
opts.format += "<";
} else if (i + 1 === $li.length) {
masks.next = this.innerHTML;
opts.format += ">";
} else {
masks[i] = this.innerHTML.replace(/#[nc]/, function(str) {
opts["format"] += str.replace("#", "");
return "([...])";
});
}
}); opts["onFormat"] = function(type) { var value = ""; switch (type) {
case 'block': value = masks[this["pos"]].replace("([...])", this["value"]); if (!this['active'])
return '<li>' + value + '</li>';
if (this["page"] !== this["value"])
return '<li><a href="#' + this["value"] + '">' + value + '</a></li>';
return '<li class="current">' + value + '</li>'; case 'next':
case 'prev':
if (!this['active'])
return '<li>' + masks[type] + '</li>';
return '<li><a href="#' + this["value"] + '">' + masks[type] + '</a></li>';
}
}; $(this)["paging"](num, opts); return this;
}; }(jQuery));

仅分享,非个人所写。

最简单的pagging插件的更多相关文章

  1. 【UI插件】简单的日历插件(下)—— 学习MVC思想

    前言 我们上次写了一个简单的日历插件,但是只是一个半成品,而且做完后发现一些问题,于是我们今天尝试来解决这些问题 PS:距离上次貌似很久了 上次,我们大概遇到哪些问题呢: ① 既然想做一套UI库,那么 ...

  2. Awesomplete - 零依赖的简单自动完成插件

    Awesomplete 是一款超轻量级的,可定制的,简单的自动完成插件,零依赖,使用现代化标准构建.你可以简单地添加 awesomplete 样式,让它自动处理(你仍然可以通过指定 HTML 属性配置 ...

  3. 接口测试从未如此简单 - Postman (Chrome插件)

    接口测试从未如此简单 - Postman (Chrome插件) 一个非常有力的Http Client工具用来测试Web服务的, 我这里来介绍如何用它测试restful web service 注:转载 ...

  4. 编写一个简单的Jquery插件

    1.实现内容 定义一个简单的jquery插件,alert传递进来的参数 2.插件js文件(jquery.showplugin.js) (function ($) { //定义插件中的方法 var me ...

  5. NSIS:简单按钮美化插件SkinButton,支持透明PNG图片。

    原文 NSIS:简单按钮美化插件SkinButton,支持透明PNG图片. 征得作者贾可的同意,特发布按钮美化插件SkinButton. 插件说明: 使用GDI+库写的一个简单按钮美化插件,支持透明P ...

  6. 手把手制作一个简单的IDEA插件(环境搭建Demo篇)

    新建IDEA插件File --> new --> Project--> Intellij PlatForm Plugin-->Next-->填好项目名OK 编写插件新建工 ...

  7. 实现一个简单的Vue插件

    我们先看官方文档对插件的描述 插件通常会为 Vue 添加全局功能.插件的范围没有限制--一般有下面几种: 1.添加全局方法或者属性,如: vue-custom-element 2.添加全局资源:指令/ ...

  8. 使用jQuery.extend创建一个简单的选项卡插件

    选项卡样式如图,请忽略丑陋的样式,样式可以随意更改 主要是基于jquery的extend扩展出的一个简单的选项卡插件,注意:这里封装的类使用的是es6中的class,所以不兼容ie8等低版本浏览器呦! ...

  9. XMPP即时通讯协议使用(五)——搭建简单的Openfire插件

    前言 在开发Openfire插件前需要构建完成服务器源码编辑环境,具体操作步骤请参照Openfire服务器源码编译的了解. 开发简单的Openfire插件 1.已构建完成的Openfire源码结构如下 ...

随机推荐

  1. [.NET领域驱动设计实战系列]专题一:前期准备之EF CodeFirst

    一.前言 从去年已经接触领域驱动设计(Domain-Driven Design)了,当时就想自己搭建一个DDD框架,所以当时看了很多DDD方面的书,例如领域驱动模式与实战,领域驱动设计:软件核心复杂性 ...

  2. MySQL5:性能优化

    性能优化 优化MySQL数据库是数据库管理员和数据库开发人员的必备技能.MySQL优化,一方面是找出系统的瓶颈,提高MySQL数据库的整体性能:一方面需要合理的结构设计和参数调整,以提高用户操作响应的 ...

  3. java提高篇(十四)-----字符串

          可以证明,字符串操作是计算机程序设计中最常见的行为. 一.String 首先我们要明确,String并不是基本数据类型,而是一个对象,并且是不可变的对象.查看源码就会发现String类为f ...

  4. python 对象

    python 对象 在python中,对象就是为C中的结构体在堆上申请的一块内存,一般来说,对象是不能被静态初始化的,并且不能再栈空间上生存.本文主要对Python的基本数据类型做简单的介绍. PyO ...

  5. 科蓝软件急招前端开发、PHP、.NET工程师

    职位:前端开发 工作年限:不限     学历要求:大专     招聘人数:2   专业:不限    薪酬:面议 工作地点:浙江嘉兴.北京 岗位职责: 1.负责公司项目的UI设计: 2.负责将UI静态化 ...

  6. [问题解决]安装 SQL Server 无法开启NetFx3.5 的错误

    谷歌了一下,该问题是由于系统中缺少.Net3.5相关特性造成的.需要手动安装一下3.5的环境 解决办法: Windows 徽标键+R打开运行窗口 输入Dism /online /enable-feat ...

  7. i++ and ++i efficiency

    其实这个问题,百度的话,有一大堆的参考资料,但是,在这里,我产生了一些困惑,他们所分析的结果,和我的测试代码不一致,这让我纠结了,所以,再次的写一下这个问题,顺顺思路. 我的测试环境:系统:Windo ...

  8. java-面向对象练习2

    1.按要求编写Java应用程序: (1)编写西游记人物类(XiYouJiRenWu) 其中属性有:身高(height),名字(name),武器(weapon) 方法有:显示名字(printName), ...

  9. Atitit  深入理解命名空间namespace  java c# php js

    Atitit  深入理解命名空间namespace  java c# php js 1.1. Namespace还是package1 1.2. import同时解决了令人头疼的include1 1.3 ...

  10. Atitit (Sketch Filter)素描滤镜的实现  图像处理  attilax总结

    Atitit (Sketch Filter)素描滤镜的实现  图像处理  attilax总结 1.1. 素描滤镜的实现方法比较简单,这里我们直接写出算法过程如下:1 1.2. 颜色减淡COLOR_DO ...