jQuery之自定义pagination控件

slpagination

效果:

slpagination.js


(function($) {
$.fn.slpagination = function(options, params) {
$.extend($.fn.slpagination.defaults, options);
$(this).attr({
"class" : $.fn.slpagination.defaults.css,
style : $.fn.slpagination.defaults.style
});
$(this).empty();
var pageCount = $.fn.slpagination.defaults.total / $.fn.slpagination.defaults.pageSize;
pageCount = pageCount * $.fn.slpagination.defaults.pageSize > $.fn.slpagination.defaults.total ? pageCount : (pageCount + 1);
$("<input>", {
id : "slpagination_pagesize",
type : "text",
style : "margin:3px 0 3px 10px;width:30px;",
value : $.fn.slpagination.defaults.pageSize,
blur : function() {
var r = /^[0-9]*[1-9][0-9]*$/;
if (r.test($(this).val())) {
$.fn.slpagination.defaults.pageSize = $(this).val();
$.fn.slpagination.defaults.onChangePageSize($(this).val());
} else {
$(this).val($.fn.slpagination.defaults.pageSize);
}

}
}).appendTo(this);
$("<span>", {
id : "slpagination_firstpage",
style : "cursor:pointer;margin:0 0 0 10px;",
mouseenter : function() {
$(this).addClass("slpagination-button-enter");
},
mouseleave : function() {
$(this).removeClass("slpagination-button-enter");
},
click : function() {
$.fn.slpagination.defaults.pageIndex = 1;
$("#slpagination_pageindex").val(1);
$.fn.slpagination.defaults.onSelectPage(1);
}
}).text("<<").appendTo(this);
$("<span>", {
id : "slpagination_previouspage",
style : "cursor:pointer;margin:0 0 0 10px;",
mouseenter : function() {
$(this).addClass("slpagination-button-enter");
},
mouseleave : function() {
$(this).removeClass("slpagination-button-enter");
},
click : function() {
$.fn.slpagination.defaults.pageIndex--;
if ($.fn.slpagination.defaults.pageIndex <= 0) {
$.fn.slpagination.defaults.pageIndex = 1;
}
$("#slpagination_pageindex").val($.fn.slpagination.defaults.pageIndex);
$.fn.slpagination.defaults.onSelectPage($.fn.slpagination.defaults.pageIndex);
}
}).text("<").appendTo(this);
$("<span>", {
style : "margin:0 0 0 20px;"
}).text($.fn.slpagination.defaults.beforePageText).appendTo(this);
$("<input>", {
id : "slpagination_pageindex",
type : "text",
style : "margin:0 0 0 3px;width:30px;",
value : $.fn.slpagination.defaults.pageIndex,
blur : function() {
var r = /^[0-9]*[1-9][0-9]*$/;
if (r.test($(this).val())) {
if ($(this).val() > pageCount) {
$(this).val(pageCount);
}
$.fn.slpagination.defaults.pageIndex = $(this).val();
$.fn.slpagination.defaults.onSelectPage($(this).val());
} else {
$(this).val($.fn.slpagination.defaults.pageIndex);
}
}
}).appendTo(this);
$("<span>", {
style : "margin:0 0 0 3px;",
}).text($.fn.slpagination.defaults.afterPageText.replace(/{pageCount}/, pageCount)).appendTo(this);
$("<span>", {
id : "slpagination_nextpage",
style : "cursor:pointer;margin:0 0 0 10px;",
mouseenter : function() {
$(this).addClass("slpagination-button-enter");
},
mouseleave : function() {
$(this).removeClass("slpagination-button-enter");
},
click : function() {
$.fn.slpagination.defaults.pageIndex++;
if ($.fn.slpagination.defaults.pageIndex > pageCount) {
$.fn.slpagination.defaults.pageIndex = pageCount;
}
$("#slpagination_pageindex").val($.fn.slpagination.defaults.pageIndex);
$.fn.slpagination.defaults.onSelectPage($.fn.slpagination.defaults.pageIndex);
}
}).text(">").appendTo(this);
$("<span>", {
id : "slpagination_lastpage",
style : "cursor:pointer;margin:0 0 0 10px;",
mouseenter : function() {
$(this).addClass("slpagination-button-enter");
},
mouseleave : function() {
$(this).removeClass("slpagination-button-enter");
},
click : function() {
$.fn.slpagination.defaults.pageIndex = pageCount;
$("#slpagination_pageindex").val($.fn.slpagination.defaults.pageIndex);
$.fn.slpagination.defaults.onSelectPage($.fn.slpagination.defaults.pageIndex);
}
}).text(">>").appendTo(this);
$("<span>", {
style : "margin:0 0 0 20px;"
}).text($.fn.slpagination.defaults.displayMsg.replace(/{from}/, ($.fn.slpagination.defaults.pageIndex - 1) * $.fn.slpagination.defaults.pageSize).replace(/{to}/, $.fn.slpagination.defaults.pageIndex * $.fn.slpagination.defaults.pageSize).replace(/{total}/, $.fn.slpagination.defaults.total)).appendTo(this);
};
$.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


.slpagination {
width: auto; background-color: #EFEFEF;
}

.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 在页面更改页面大小的时候触发

jQuery之自定义pagination控件,布布扣,bubuko.com

时间: 2024-08-07 17:02:13

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

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

基于之前上篇博客轻量级jquery,tool.js和base.js.自定义开发的base_datePicker插件,效果类似于jquery_ui的datePicker插件 //基于Base.js以及tool.js做的日历插件 $().extend('datePicker', function() { //生成日历插件 var $yearSpan; var $monthSpan; var tds; var $prevBtn; var $nextBtn; var $lastTr; var $date

Xamarin.Forms自定义用户界面控件实现一个HybridWebView(混合webview)

原文:Implementing a HybridWebView呈现一个特定于平台的视图 Xamarin.Forms自定义用户界面控件应该来自视图类(View class),用于在屏幕上放置布局和控件.本文演示了如何为HybridWebView(混合webview)自定义控件创建自定义渲染器,该控件演示了如何增强特定平台的web控件,以允许从JavaScript调用c#代码. 每一个Xamarin.Forms视图为每个创建本地控件实例的平台提供了相应的渲染器.当一个视图被Xamarin.Forms

jquery上传文件控件Uploadify

基于jquery的文件上传控件,支持ajax无刷新上传,多个文件同时上传,上传进行进度显示,删除已上传文件. 要求使用jquery1.4或以上版本,flash player 9.0.24以上. 有两个版本,一个用flash,一个是html5.html5的需要付费~所以这里只说flash版本的用法. 官网:http://www.uploadify.com/ 控件截图: 用法: 首先引用下面的文件 <link rel="stylesheet" type="text/css&

Android自定义控件之自定义组合控件(三)

前言: 前两篇介绍了自定义控件的基础原理Android自定义控件之基本原理(一).自定义属性Android自定义控件之自定义属性(二).今天重点介绍一下如何通过自定义组合控件来提高布局的复用,降低开发成本,以及维护成本. 使用自定义组合控件的好处? 我们在项目开发中经常会遇见很多相似或者相同的布局,比如APP的标题栏,我们从三种方式实现标题栏来对比自定义组件带来的好处,毕竟好的东西还是以提高开发效率,降低开发成本为导向的. 1.)第一种方式:直接在每个xml布局中写相同的标题栏布局代码 <?xm

自定义组合控件和在自定义控件中使用自定义属性

今天,整理了一下我平时的笔记,写一个比较简单的自定义组合控件,仅供小白参考,大神请绕道,希望能够对大家有一些帮助 首先,得明白为什么我们需要自定义组合控件,它是因为原有控件并不能满足开发的需求,或者说并不能达到我们想要的一种效果,这个时候,就需要我们自己定义一些控件,以达到目的 ![先来看一下效果](http://img.blog.csdn.net/20160716224219109) 个人总结自定义控件的步骤: 1.先写一个布局,这里我用的是一个相对布局,我这里的相对布局就是根布局了 <?xm

自定义HtmlHelper控件

在asp.net mvc 中每一个Html控件都返回了MvcHtmlString ,他继承了HtmlString.下面自定义一个关于显示男女性别的自定义Html控件,使在创建页面时,可以直接调用该自定义的Html控件.可以查看其他的Html控件返回的是HtmlHelper,所以自定义的时候也要返回相同的类型直接在Controls文件夹下建立要自定义的html控件代码如下: using System.Web.Mvc; using System.Text; namespace System.Web.

【转】带checkbox的ListView实现(二)——自定义Checkable控件的实现方法

原文网址:http://blog.csdn.net/harvic880925/article/details/40475367 前言:前一篇文章给大家展示了传统的Listview的写法,但有的时候我们并不想在DataHolder类中加一个标识是否选中的checked的成员变量,因为在项目开发中,大部分的ListItemLayout布局都是大家共用的,有些人根本不需要checkbox控件,所以会在初始化的时候把这个控件给隐藏掉,但我们的DataHolder在构造的时候以及ListItemAdapt

Android自定义组合控件--底部多按钮切换

效果图: 现在市场上大多数软件都是类似于上面的结构,底部有几个按钮用于切换到不同的界面.基于OOP思想,我想把下面的一整块布局封装成一个类,也就是我们的自定义组合控件-底部多按钮切换布局,我把它叫做BottomLayout 看上面的布局,几个按钮横向排列,我们先看一下布局 最外面LinearLayout 方向 horizontal,然后5个weight相同的RelativeLayout,每个RelativeLayout里面有一个Button(用了显示选中状态)个ImageView(用来显示红点)

Android_自定义切换控件SwitchView

今天做了一下老师给的第一套题,第一题是判断一个字符串是否在另一个字符串中:做了一下,感觉有好多种写法,java中的类真的好多啊,要掌握好一些基本类的用法: package com.exam.e120; public class java1 { public static void main(String[]args){ String str1,str2; str1="I am Tom, I am from China."; str2="Tom"; int i=str