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. 树莓派进阶之路 (028) - 树莓派SQLite3的安装

    MySQL占用内存太大,而SQLite是一款轻量级零配置数据库,非常适合在树莓派和其他嵌入式系统中使用.SQLite文档详细资料丰富,本文不会详细解释SQLite数据库操作的方方面面,只能结合具体场景 ...

  2. 在Hadoop1.2.1上运行第一个Hadoop程序FileSystemCat

  3. 使用itext直接替换PDF中的文本

    直接说问题,itext没有直接提供替换PDF中文本的接口(查看资料得到的结论是PDF不支持这种操作),不过存在解决思路:在需要替换的文本上覆盖新的文本.按照这个思路我们需要解决以下几个问题: itex ...

  4. hibernate 注释 唯一键约束 uniqueConstraints

    @Table 注解包含一个schema和一个catelog 属性,使用@UniqueConstraints 可以定义表的唯一约束. 如果是联合约束就用下面这种 @Table(name="tb ...

  5. NPM Node.js 包管理

    1.NPM 简介 1.1 NPM Node.js® 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,可方便地构建快速,可扩展的网络应用程序的平台.Node.js 使用事件驱动, ...

  6. sql server 2008评估期已到的解决办法

    点击开始-所有程序-Microsoft SQL Server 2008-配置工具-SQL Server 安装中心然后点击左侧的维护,在点击右侧的版本升级,接着按照提示一直点下一步,到产品密钥的时候输入 ...

  7. Android插件化与热修复(六)-微信Tinker原理分析

    Tinker热修复原理分析 热补丁技术是在用户不需要重新安装应用的情况下实现应用更新,可快速解决一些线上问题.热补丁省去了Android应用发布版本的成本,而且用户端的更新也是无感知的. Tinker ...

  8. [转]JVM参数设置、分析

    不管是YGC还是Full GC,GC过程中都会对导致程序运行中中断,正确的选择不同的GC策略,调整JVM.GC的参数,可以极大的减少由于GC工作,而导致的程序运行中断方面的问题,进而适当的提高Java ...

  9. 如何在"Visual Studio Code"中使用" Git" 进行版本控制

    如何在"Visual Studio Code"中使用" Git" 进行版本控制 本来认为此类教程,肯定是满网飞了.今天首次使用VS Code的Git功能,翻遍了 ...

  10. xbox360 双65厚机自制系统无硬盘 U盘玩游戏方法

    因为没有硬盘,又没有光盘.所以想把游戏放在U盘里面.用U盘来做为硬盘玩游戏. 现有的自制系统主要是FSD,但是FSD要用硬盘才能安装,理论上U盘也可以,但是我没有尝试了. 这里介绍的是玩xex格式的游 ...