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. 【Struts2】result类型

    Struts2 result类型 1.dispatcher:服务器跳转到页面,通常来处理JSP,默认类型. 2.redirect:重定向到页面. Action: 1 public String red ...

  2. 安卓sdk安装慢解决办法

    1.上图SDK Manager 的 Tools ->Options打开SDK Manager的Settings, 选中“Force https://… sources to be fetched ...

  3. [AaronYang原创] 敏捷开发-Jira 6.0.5环境搭建[2]

    基本配置-关卡一(我研究了1.5个小时 AaronYang)   JIRA的设置向导将只显示您安装后第一次JIRA. 一旦你完成了它,你不能再次运行它. 然而,每一个设置在设置向导配置可以通过管理控制 ...

  4. MongoDB学习笔记(10)-- 排序

    MongoDB sort() 方法 在 MongoDB 中使用 sort() 方法对数据进行排序,sort() 方法可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序 ...

  5. [转]BSIM Parameters

    Name Alias Description MOSFET LevelL LV1 Channel Length (L)This is also the effective channel length ...

  6. mysql数据库,创建只读用户

    数据库当前只有一个root用户,需要创建一个只读帐户给其他使用,因使用者是使用数据库管理工具在其他主机访问,所以还要开户远程访问权限,操作步骤如下. 1. 使用现有的root用户登录到Mysql. m ...

  7. tensorflow中使用Batch Normalization

    在深度学习中为了提高训练速度,经常会使用一些正正则化方法,如L2.dropout,后来Sergey Ioffe 等人提出Batch Normalization方法,可以防止数据分布的变化,影响神经网络 ...

  8. java用String类的toUpperCase()和toLowerCase()方法转字符串的大小写

    1.如何判断英文字母的大小写: package com.ldw.string; import java.util.Scanner; /** * @author 作者:ldw E-mail: csu.l ...

  9. 如何指定一个和你的Android应用程序相适配的屏幕配置

    原文:http://android.eoe.cn/topic/android_sdk 描述: 指定每个与该应用程序兼容的屏幕配置.一个配置清单中只能有一个标签的实例,但是它能够包含多个元素.每个元素指 ...

  10. sprintboot 发布

    http://blog.csdn.net/hguisu/article/details/51072683