slpagination

效果:

slpagination.js

 (function($) {
$.fn.slpagination = function(options, params) {
if ($.type(options) == "string") {
var method = $.fn.slpagination.methods[options];
if (method) {
return method(this, params);
} else {
return null;
}
}
var settings = {};
$.extend(settings, $.fn.slpagination.defaults, options);
$(this).data("settings", settings);
$(this).attr({
"class" : settings.css,
style : settings.style
});
$(this).empty();
if (settings.total == 0) {
settings.total = settings.pageSize;
}
var pageCount = parseInt(settings.total / settings.pageSize);
pageCount = pageCount * settings.pageSize >= settings.total ? pageCount : (pageCount + 1);
$("<input>", {
type : "text",
style : "margin:0 0 0 3px;width:30px;float:left;",
value : settings.pageSize,
blur : function() {
var r = /^[0-9]*[1-9][0-9]*$/;
if (r.test($(this).val())) {
settings.pageIndex = 1;
$("input:eq(1)", $(this).parent()).val(1);
settings.pageSize = $(this).val();
settings.onChangePageSize($(this).val());
} else {
$(this).val(settings.pageSize);
} }
}).appendTo(this);
$("<span>", {
style : "cursor:pointer;margin:0 0 0 10px;",
mouseenter : function() {
$(this).addClass("slpagination-button-enter");
},
mouseleave : function() {
$(this).removeClass("slpagination-button-enter");
},
click : function() {
settings.pageIndex = 1;
$("input:eq(1)", $(this).parent()).val(1);
settings.onSelectPage(1);
}
}).text("<<").appendTo(this);
$("<span>", {
style : "cursor:pointer;margin:0 0 0 10px;",
mouseenter : function() {
$(this).addClass("slpagination-button-enter");
},
mouseleave : function() {
$(this).removeClass("slpagination-button-enter");
},
click : function() {
settings.pageIndex--;
if (settings.pageIndex <= 0) {
settings.pageIndex = 1;
}
$("input:eq(1)", $(this).parent()).val(settings.pageIndex);
settings.onSelectPage(settings.pageIndex);
}
}).text("<").appendTo(this);
$("<span>", {
style : "margin:0 0 0 20px;"
}).text(settings.beforePageText).appendTo(this);
$("<input>", {
type : "text",
style : "margin:0 0 0 3px;width:30px;",
value : settings.pageIndex,
blur : function() {
var r = /^[0-9]*[1-9][0-9]*$/;
if (r.test($(this).val())) {
if ($(this).val() > pageCount) {
$(this).val(pageCount);
}
settings.pageIndex = $(this).val();
settings.onSelectPage($(this).val());
} else {
$(this).val(settings.pageIndex);
}
}
}).appendTo(this);
$("<span>", {
style : "margin:0 0 0 3px;"
}).text(settings.afterPageText.replace(/{pageCount}/, pageCount)).appendTo(this);
$("<span>", {
style : "cursor:pointer;margin:0 0 0 10px;",
mouseenter : function() {
$(this).addClass("slpagination-button-enter");
},
mouseleave : function() {
$(this).removeClass("slpagination-button-enter");
},
click : function() {
settings.pageIndex++;
if (settings.pageIndex > pageCount) {
settings.pageIndex = pageCount;
}
$("input:eq(1)", $(this).parent()).val(settings.pageIndex);
settings.onSelectPage(settings.pageIndex);
}
}).text(">").appendTo(this);
$("<span>", {
style : "cursor:pointer;margin:0 0 0 10px;",
mouseenter : function() {
$(this).addClass("slpagination-button-enter");
},
mouseleave : function() {
$(this).removeClass("slpagination-button-enter");
},
click : function() {
settings.pageIndex = pageCount;
$("input:eq(1)", $(this).parent()).val(settings.pageIndex);
settings.onSelectPage(settings.pageIndex);
}
}).text(">>").appendTo(this);
$("<span>", {
style : "margin:0 0 0 100px;clear:right;"
}).text(settings.displayMsg.replace(/{from}/, (settings.pageIndex - 1) * settings.pageSize + 1).replace(/{to}/, (settings.pageIndex * settings.pageSize > settings.total ? settings.total : settings.pageIndex * settings.pageSize)).replace(/{total}/, settings.total)).appendTo(this);
};
$.fn.slpagination.methods = {
getPageSize : function(slpagination) {
return $("input:eq(0)", slpagination).val();
},
getPageIndex : function(slpagination) {
return $("input:eq(1)", slpagination).val();
}
};
$.fn.slpagination.defaults = {
css : "slpagination",
style : "",
total : 0,
pageSize : 10,
pageIndex : 1,
beforePageText : "page",
afterPageText : "of {pageCount}",
displayMsg : "display {from} to {to} of {total} items",
onChangePageSize : function(pageSize) {
},
onSelectPage : function(pageIndex) {
}
};
})(jQuery);

slpagination.css

 div,input,span {
margin:; padding:;font-family:verdana;font-size:12px;
} .slpagination {
width: auto; background-color: #EFEFEF; padding: 4px 0 3px 0;
} .slpagination-button-enter {
font-weight: bold;
}

testslpagination.html

 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" href="/css/streamlineui/slpagination.css" />
<script type="text/javascript" src="/js/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="/js/streamlineui/slpagination.js"></script>
</head>
<body>
<div id="sl"></div>
<script type="text/javascript">
$(function() {
$("#sl").slpagination({
onChangePageSize : function(pageSize) {
alert(pageSize);
},
onSelectPage:function(pageIndex){
alert(pageIndex);
}
});
});
</script>
</body>
</html>

API文档

属性:
 
属性名 属性值类型 描述 默认值
css string 使用的class样式 slpagination
style string 应用的样式 空字符串
total int 总记录数 0
pageSize int 一页显示记录数 10
pageIndex int 当前显示的页码 1
beforePageText string 页码前面的文字 page
afterPageText string 页码后面的文字 of {pageCount}
displayMsg string 显示文字 display {from} to {to} of {total} items
 
事件:
 
事件名 参数 描述
onSelectPage pageIndex 选择一个新页面的时候触发
onChangePageSize pageSize 在页面更改页面大小的时候触发
 
方法:
 
方法名 参数 描述
getPageSize 获取每页显示的记录数
$("#pg").slpagination("getPageSize")
getPageIndex 获取当前显示的页码

$("#pg").slpagination("getPageIndex")

jQuery之自定义pagination控件的更多相关文章

  1. jQuery之自定义datagrid控件

    sldatagrid 效果: sldatagrid.js (function($) { function loadColumns(sldatagrid, columns) { $(sldatagrid ...

  2. javascript实例学习之六—自定义日历控件

    基于之前上篇博客轻量级jquery,tool.js和base.js.自定义开发的base_datePicker插件,效果类似于jquery_ui的datePicker插件 //基于Base.js以及t ...

  3. 安卓自定义组合控件--toolbar

    最近在学习安卓APP的开发,用到了toolbar这个控件, 最开始使用时include layout这种方法,不过感觉封装性不好,就又改成了自定义组合控件的方式. 使用的工具为android stud ...

  4. Android自定义控件之自定义组合控件

    前言: 前两篇介绍了自定义控件的基础原理Android自定义控件之基本原理(一).自定义属性Android自定义控件之自定义属性(二).今天重点介绍一下如何通过自定义组合控件来提高布局的复用,降低开发 ...

  5. asp.net webform 自定义分页控件

    做web开发一直用到分页控件,自己也动手实现了个,使用用户自定义控件. 翻页后数据加载使用委托,将具体实现放在在使用分页控件的页面进行注册. 有图有真相,给个直观的认识: 自定义分页控件前台代码: & ...

  6. arcgis api for js共享干货系列之二自定义Navigation控件样式风格

    arcgis api for js默认的Navigation控件样式风格如下图: 这样的风格不能说不好,各有各的爱好,审美观,这里也不是重点,这里的重点是如何自定义一套自己喜欢的样式风格呢:自己自定义 ...

  7. C# DataGridView自定义分页控件

    好些日子不仔细写C#代码了,现在主要是Java项目,C#.Net相关项目不多了,有点手生了,以下代码不足之处望各位提出建议和批评. 近日闲来无事想研究一下自定义控件,虽然之前也看过,那也仅限于皮毛,粗 ...

  8. C# 自定义FileUpload控件

    摘要:ASP.NET自带的FileUpload控件会随着浏览器的不同,显示的样式也会发生改变,很不美观,为了提高用户体验度,所以我们会去自定义FileUpload控件 实现思路:用两个Button和T ...

  9. C#Winform VScrollBar+Pannel自定义列表控件(原)

    该控件的主要实现思路是用的objective-c中的自定义控件思路,主视图中放子视图 效果图 (窗体调用代码) public partial class Form1 : RibbonForm { Li ...

随机推荐

  1. 进阶之路(基础篇) - 004 I/O的模拟量输出

    /********************************* 代码功能:某输出模拟量 使用函数: analogWrite(引脚号,模拟量); //调用8位AD 创作时间:2016*10*08 ...

  2. React(0.13) 定义一个动态的组件(属性)

    <!DOCTYPE html> <html> <head> <title>React JS</title> <script src=& ...

  3. 细说PHP中strlen和mb_strlen的区别(转)

    在PHP中,strlen与mb_strlen是求字符串长度的函数,但是对于一些初学者来说,如果不看手册,也许不太清楚其中的区别.下面通过例子,讲解这两者之间的区别. 先看例子: <?php // ...

  4. App开发准备

    一. Android开发 二. IOS开发 1. 准备苹果电脑 Mac pro 一般比较贵,很少人或公司使用 替代的产品为 iMac 或 Mac mini 中配8G内存版 2. 准备苹果开发者账户,才 ...

  5. [转]python数据持久存储:pickle模块的基本使用

    python的pickle模块实现了基本的数据序列和反序列化.通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储:通过pickle模块的反序列化操作,我们能够从文件 ...

  6. windows下php的各个版本下载地址

    windows下php的各个版本 https://windows.php.net/downloads/releases/archives/

  7. linux(centos6)搭建ftp服务器 -摘自网络

    前提 ssh服务已经开启,关闭防火墙,主机和虚拟机能ping通 查看ssh和防火墙的状态 service sshd status service iptables status 开启ssh服务 ser ...

  8. php分享十七:http状态码

    一:http状态码 (200,301,302,304,305,400,401,403,404,500,501,502,503,504) HTTP状态码(HTTP Status Code)是用以表示网页 ...

  9. JDK1.6新特性,WebService强化

    Web service是一个平台独立的,松耦合的,自包含的.基于可编程的web的应用程序,可使用开放的XML标准来描述.发布.发现.协调和配置这些应用程序,用于开发分布式的互操作的应用程序. Web ...

  10. Android应用中创建绑定服务使得用户可以与服务交互

    原文:http://android.eoe.cn/topic/android_sdk 一个绑定的服务是客户服务器接口上的一个服务器.一个绑定的服务允许组件(如:活动)来绑定一个服务,传送请求,接收响应 ...