相思资源网 Design By www.200059.com
前台分页控件有很多,这里分享我的分页控件 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,分页控件
相思资源网 Design By www.200059.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
相思资源网 Design By www.200059.com
暂无基于jquery实现简单的分页控件的评论...
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
