前台分页控件有很多,这里分享我的分页控件 pagination.js 1.0版本,该控件基于jquery。
先来看一下预览效果:
默认情况下,点击页码会像博客园一样,在url后面加上"#p页码"。
控件有2个参数需要注意:
1. beforeRender: 在每个页码项呈现前会被调用,参数为页码的jQuery对象。这个时候我们可以在呈现前做一些处理,例如增加自己的属性等。默认情况下,点击页码,会在url后面加上“#p页码”,这样的url并不会刷新页面。如果我们需要刷新页面,例如url为,"default.aspx",就可以在这个回调函数里处理。
2. callback: 点击页码触发,参数为整个options。点击页码并不会发起ajax请求,需要自己处理,options.index 就是本次点击的页码。有时候我们的总数可能会变化,callback 可以将 options 参数回传,这里只要重新设置总数,然后 return 即可。
具体看调用例子就明白了。
源代码:
/*分页控件v1.0
date:2015.08.26
*/
(function(window,$){
$.fn.pagination = function(options){
var _dftOpts = {
count:0,//总数
size:10,//每页数量
index:1,//当前页
lrCount:5,//当前页左右最多显示的数量
lCount:0,//最开始预留的数量
rCount:0,//最后预留的数量
first:"首页",
last:"尾页",
before:"上一页",
next:"下一页",
callback:null,//点击事件
beforeRender:null//项呈现前
};
$.extend(_dftOpts,options);
var count = _dftOpts.count;
if(count <= 0) return;
var _ellipsis = "...";
var _size = _dftOpts.size > 0 "#p";
var jthis = this;
var jPager = $("<div>",{"class":"pager"});
initJPager();
jthis.append(jPager);
regisiterEvent();
return jthis;
/*function*/
function initJPager(){
_FromTo = GetFromTo();
var from = _FromTo.from;
var to = _FromTo.to;
var before = _index <= 1 "<a>",{text:index,href:_url+index});
if(active){
jA.addClass("active");
}
if(_dftOpts.beforeRender){
_dftOpts.beforeRender(jA);
}
jPager.append(jA);
}
function appendFirstAndLast(){
var jFirst = $("<a>",{text:_first});
var jBefore = $("<a>",{text:_before});
var jLast = $("<a>",{text:_last});
var jNext = $("<a>",{text:_next});
jPager.append(jNext).append(jLast);
jBefore.insertBefore(jPager.find("a").first());
jFirst.insertBefore(jBefore);
if(_index === 1){
jFirst.addClass("disabled");
jBefore.addClass("disabled");
}else{
jFirst.attr("href",_url+1);
jBefore.attr("href",_url+(_index-1));
}
if(_index === _page){
jLast.addClass("disabled");
jNext.addClass("disabled");
}else{
jLast.attr("href",_url+_page);
jNext.attr("href",_url+(_index+1));
}
}
function appendEllipsis(){
jPager.append(_ellipsis);
}
//event
function regisiterEvent(){
jPager.on("mouseenter","a",function(){
var jthis = $(this);
if(!jthis.hasClass("active") && !jthis.hasClass("disabled")){
jthis.addClass("hover");
}
}).on("mouseout","a",function(){
var jthis = $(this);
if(!jthis.hasClass("active")){
jthis.removeClass("hover");
}
}).on("click","a",function(){
var jItem = $(this);
if(jItem.hasClass("disabled")){
return;
}
var text = jItem.text();
var index = 0;
switch(text){
case _first:
index = 1;
break;
case _before:
index = _index - 1;
break;
case _last:
index = _page;
break;
case _next:
index = _index + 1;
break;
default:
index = parseInt(text);
break;
}
var callback = _dftOpts.callback;
var newOpts;
_dftOpts.index = index;
jPager.remove();
if(callback){
newOpts = callback(_dftOpts);
}
if(newOpts){
_dftOpts = newOpts;
}
jthis.pagination(_dftOpts);
});
}
}
})(window,$);
样式:
样式很简单,可以自己调。
.pager{height:30px;line-height:30px;font-size: 12px;margin: 25px 0px;text-align: center;color: #2E6AB1;overflow: hidden;}
.pager a{border:1px solid #9AAFE5;color:#2E6AB1;margin:0px 5px;padding:5px 8px;text-decoration: none;}
.pager a.hover,.pager a.active{background-color:#2E6AB1;border-color:#000080;color:#FFF;}
.pager a.disabled{color:#C8CDD2;cursor:auto;}
使用例子:
$(".div1").pagination({
count:200,
size:10,
index:1,
lrCount:3,
lCount:1,
rCount:1,
callback:function(options){
//alert(options.index);
//options.count = 300;
//return options;
},
beforeRender:function(jA){
//jA.attr("href","default.aspx"+jA.text());
}
});
pagination.js 1.0 还有可能还有一些不足和bug,我会及时修正。
以上就是本文的全部内容,希望对大家的学习有所帮助。
标签:
jquery,分页控件
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
白云城资源网 Copyright www.dyhadc.com
暂无“基于jquery实现简单的分页控件”评论...
更新日志
2025年10月29日
2025年10月29日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]
