使用JQuery实现的分页插件分享
一个简单的jQuery分页插件,兼容AMD规范和requireJS.
/**
*jQuery分页插件
**/
;(function(factory){
if(typeofdefine==="function"&&define.amd){
//AMD模式
define(["jquery"],factory);
}else{
//全局模式
factory(jQuery);
}
}(function($){
//定义MyPagePlugin的构造函数
MyPagePlugin=function(ele,option){
//this.viewHtml="<nav><ulclass='pagination'><li><aid='firstPageli'>«</a></li><li><aid='prevPageli'>‹</a></li><liclass='active'><a>第<spanid='curPageNoSpan'></span>页,共<spanid='allPageCountSpan'></span>页</a></li><li><aid='nextPageli'>›</a></li><li><aid='lastPageli'>»</a></li></ul></nav>";
this.viewHtml="<divclass='pageplugin'><aclass='firstfirstPageli'>«</a><aclass='previousprevPageli'>‹</a><aclass='present'>第<spanclass='curPageNoSpan'></span>页,共<spanclass='allPageCountSpan'></span>页</a><aclass='nextnextPageli'>›</a><aclass='lastlastPageli'>»</a></div>"
this.$element=ele;
/**参数:page:当前页,pageCount:总共页数,onPaged回调函数,回调函数会传入页数*/
this.defaults={
page:1,
pageCount:1,
onPaged:function(pageNo){}
};
this.options=$.extend({},this.defaults,option);
}
//定义MyPagePlugin的方法
MyPagePlugin.prototype={
initPlugin:function(){
this.$element.empty();
this.$element.append(this.viewHtml);
this.options.onPaged(this.options.page);//初始化
this.$element.find(".curPageNoSpan").text(this.options.page);
this.$element.find(".curPageNoSpan").data("options",this.options);
this.$element.find(".allPageCountSpan").text(this.options.pageCount);
this.$element.find(".firstPageli").on("click",function(e){
varcurNo=$(e.currentTarget).parent("div.pageplugin").find(".curPageNoSpan").text();
curNo=parseInt(curNo);
if(curNo==1){
returnfalse;
}else{
$(e.currentTarget).parent("div.pageplugin").find(".curPageNoSpan").data("options").onPaged(1);
$(e.currentTarget).parent("div.pageplugin").find(".curPageNoSpan").text(1);
}
returnfalse;
});
this.$element.find(".prevPageli").on("click",function(e){
varcurNo=$(e.currentTarget).parent("div.pageplugin").find(".curPageNoSpan").text();
curNo=parseInt(curNo);
if(curNo==1){
returnfalse;
}else{
$(e.currentTarget).parent("div.pageplugin").find(".curPageNoSpan").data("options").onPaged(curNo-1);
$(e.currentTarget).parent("div.pageplugin").find(".curPageNoSpan").text(curNo-1);
}
returnfalse;
});
this.$element.find(".nextPageli").on("click",function(e){
varcurNo=$(e.currentTarget).parent("div.pageplugin").find(".curPageNoSpan").text();
curNo=parseInt(curNo);
varpageCount=$(e.currentTarget).parent("div.pageplugin").find(".allPageCountSpan").text();
pageCount=parseInt(pageCount);
if(curNo==pageCount){
returnfalse;
}else{
$(e.currentTarget).parent("div.pageplugin").find(".curPageNoSpan").data("options").onPaged(curNo+1);
$(e.currentTarget).parent("div.pageplugin").find(".curPageNoSpan").text(curNo+1);
}
returnfalse;
});
this.$element.find(".lastPageli").on("click",function(e){
varcurNo=$(e.currentTarget).parent("div.pageplugin").find(".curPageNoSpan").text();
curNo=parseInt(curNo);
varpageCount=$(e.currentTarget).parent("div.pageplugin").find(".allPageCountSpan").text();
pageCount=parseInt(pageCount);
if(curNo==pageCount){
returnfalse;
}else{
$(e.currentTarget).parent("div.pageplugin").find(".curPageNoSpan").data("options").onPaged(pageCount);
$(e.currentTarget).parent("div.pageplugin").find(".curPageNoSpan").text(pageCount);
}
returnfalse;
});
}
}
$.fn.pagePlugin=function(option){
varpagePlugin=newMyPagePlugin(this,option);
pagePlugin.initPlugin();
};
}));
CSS
.pageplugin{
display:inline-block;
border:1pxsolid#CDCDCD;
border-radius:3px;}
.pageplugina{
cursor:pointer;
display:block;
float:left;
width:20px;
height:20px;
outline:none;
border-right:1pxsolid#CDCDCD;
border-left:1pxsolid#CDCDCD;
color:#767676;
vertical-align:middle;
text-align:center;
text-decoration:none;
font-weight:bold;
font-size:16px;
font-family:Times,'TimesNewRoman',Georgia,Palatino;
background-color:#f7f7f7;
/*ATTN:needabetterfontstack
background-color:#f7f7f7;
background-image:-webkit-gradient(linear,lefttop,leftbottom,color-stop(0%,#f3f3f3),color-stop(100%,lightgrey));
background-image:-webkit-linear-gradient(#f3f3f3,lightgrey);
background-image:linear-gradient(#f3f3f3,lightgrey);*/}
.pageplugina:hover,.pageplugina:focus,.pageplugina:active{
color:#0099CC;
background-color:#cecece;
background-image:-webkit-gradient(linear,lefttop,leftbottom,color-stop(0%,#e4e4e4),color-stop(100%,#cecece));
background-image:-webkit-linear-gradient(#e4e4e4,#cecece);
background-image:linear-gradient(#e4e4e4,#cecece);}
.pageplugina.disabled,.pageplugina.disabled:hover,.pageplugina.disabled:focus,.pageplugina.disabled:active{
background-color:#f3f3f3;
background-image:-webkit-gradient(linear,lefttop,leftbottom,color-stop(0%,#f3f3f3),color-stop(100%,lightgrey));
background-image:-webkit-linear-gradient(#f3f3f3,lightgrey);
background-image:linear-gradient(#f3f3f3,lightgrey);
color:#A8A8A8;
cursor:default;}
.pageplugina:first-child{
border:none;
border-radius:2px002px;}
.pageplugina:last-child{
border:none;
border-radius:02px2px0;}
.pageplugin.present{
float:left;
margin:0;
padding:0;
width:120px;
height:20px;
outline:none;
border:none;
vertical-align:middle;
text-align:center;}
jquery分页插件cypager
cypager是网友分享到JquerySchool网站上的一款作品,非常实用,经过测试,插件兼容IE8+,Chrome,Firefox浏览器,核心文件仅5KB。。。
调用方式
由于是jquery插件,所以在引人cypager.min.js之前,要引人jquery.min.js本人使用的是1.7.2版本的,低版本的没试过。
引入css:<linkrel="stylesheet"href="css/cypager.min.css"/>
引人js :<scripttype="text/javascript"src="js/cypager.min.js"/>
$(function(){
$("#pagerArea").cypager({pg_size:10,pg_nav_count:8,pg_total_count:194,pg_call_fun:function(count){
alert("跳转至页面:"+count+"");
}});
});
参数说明
pgerId //插件的ID默认:cy_pager
pg_size //每页显示记录数默认:10条
pg_cur_count//当前页数(如果需要默认显示指定页面,则设置)
pg_total_count//总记录数
pg_nav_count //显示多少个导航数 默认:7个
pg_prev_name //上一页按钮名称(默认:PREV)
pg_next_name //下一页按钮名称(默认:NEXT)
pg_call_fun(page_count) //回调函数,点击按钮执行
高效JQUERY分页插件源代码JQUERY.PAGER.JS
本文将给大家分享一个非常不错的分页插件、jQuery.pager.js、该插件的优点是可以内容索引、使用了jQuery、也同时调用了jquery.pager.js文件、分页都是基于Ajax的、当然、如果你不打算使用Ajax来实现分页的话、那么你最好不要使用本插件、若使用的话反而很麻烦、本插件主要是为使用Ajax技术交互的网站所准备、可以很方便的嵌入到网站系统中、实现Ajax分页功能、如果大家觉得这个效果不是很好看的话、可以自己重写分页按钮的样式哈
HTML代码很简单、只要准备一个用于分页代码的DIV就可以了
<divclass="tcdPageCode"></div>
通过jQuery的方式调用即可
$(".tcdPageCode").createPage({
pageCount:6,
current:1,
backFn:function(p){
console.log(p);
}
});