jQuery 自定义插件 (分页控件)
1、引入jqpage.js
2、html代码
<div id="page">
</div>
3、js 调用
$(function () {
$.fn.jqpage({
id: 'page', width: 700 ,onSelectPage: function (pageNum, pageSize) {
console.log(pageNum + '------' + pageSize);
// ajax 异步请求数据...
var total = 100;
return total;
}
});
});
id:占位div的id
width:宽度
onSelectPage: 页码改变的回调函数
参数:pageNum 新页码
pageSize 每页显示条数
返回值 : total 总记录条数
4、效果图
jqpage.js 源码
$(function ($) {
$.fn.jqpage = function (options) { // 默认参数
var settings = $.extend({}, { id: '' }, options);
var page = $('#' + settings.id); var page_html =
' <table style="border:1px solid black;font-size:13px;font-weight:bold;color:black;" class="tabPage" ' +
' data-current="1" data-total="10" data-pageCount="100" data-pageSize="10"> ' +
' <tbody><tr> ' +
' <td> <span class="homePage" >首页</span> |</td> ' +
' <td> <span class="prevPage" >上一页</span> |</td> ' +
' <td> <span class="nextPage" >下一页</span> |</td> ' +
' <td> <span class="lastPage" >尾页</span> |</td> ' +
' <td> <select class="jrd_pageSizeChage"> ' +
' <option value="10">10</option> ' +
' <option value="20">20</option> ' +
' <option value="30">30</option> ' +
' </select> </td> ' +
' <td> <span class="goPage">前往</span><input type="text" class="txt_goPage" style="width:25px;"/>页 |</td> ' +
' <td>当前<label class="jrd_pageNum"></label>/<label class="jrd_pageCount"></label>页</td> ' +
' <td>总共<label class="jrd_total"></label>条记录</td> ' +
'</tr></tbody></table> '; function init() {
page.html(page_html); if (settings.width) {
page.css('width', settings.width);
page.find('.tabPage').css('width', settings.width);
}
// 添加其他参数时在这里进行初始化
// style, ... // 注册4个事件
page.find('.homePage').click(function () { jrd_PageChange(0) });
page.find('.prevPage').click(function () { jrd_PageChange(1) });
page.find('.nextPage').click(function () { jrd_PageChange(2) });
page.find('.lastPage').click(function () { jrd_PageChange(3) });
page.find('.goPage').click(function () { jrd_PageChange(4) });
//page.find('.txt_goPage').click(function () { jrd_PageChange(4) }).data('pid', settings.id);
page.find('.jrd_pageSizeChage').change(jrd_pageSizeChage).data('pid', settings.id).change(); } // 页码发生事件
function jrd_PageChange(t) {
var pageNum = page.data('pageNum');
//var total = page.data('total');
var pageCount = page.data('pageCount');
var pageSize = page.data('pageSize'); if (t == 0) { // 首页
pageNum = 1;
settings.onSelectPage(pageNum, pageSize);
} else if (t == 1) { // 上一页
pageNum = pageNum - 1;
if (pageNum < 1) pageNum = 1;
settings.onSelectPage(pageNum, pageSize);
} else if (t == 2) { // 下一页
pageNum = pageNum + 1;
if (pageNum > pageCount) pageNum = pageCount;
settings.onSelectPage(pageNum, pageSize);
} else if (t == 3) { // 尾页
pageNum = pageCount;
settings.onSelectPage(pageNum, pageSize);
} else if (t == 4) {
//pageNum 输入的值
pageNum = parseInt(page.find('.txt_goPage').val());
if (isNaN(pageNum) || pageNum < 1) pageNum = 1;
if (pageNum > pageCount) pageNum = pageCount;
settings.onSelectPage(pageNum, pageSize);
} page.data('pageNum', pageNum); // 修改为当前页
page.find('.jrd_pageNum').text(pageNum);
page.find('.txt_goPage').val(pageNum);
}
// 显示数量事件
function jrd_pageSizeChage() {
var pageNum = 1;
var pageSize = parseInt($(this).val())
var totalCount = settings.onSelectPage(pageNum, pageSize); // 返回总记录数
var pageCount = Math.ceil(totalCount / pageSize); page.data('pageNum', pageNum).data('pageSize', pageSize)
.data('totalCount', totalCount).data('pageCount', pageCount);
page.find('.jrd_pageNum').text(pageNum);
page.find('.jrd_pageCount').text(pageCount);
page.find('.jrd_total').text(totalCount);
} init();
}
});
jQuery 自定义插件 (分页控件)的更多相关文章
- 自定义angularjs分页控件
继昨天写了knockoutjs+ jquery pagination+asp.net web Api 实现无刷新列表页 ,正好最近刚学习angularjs ,故琢磨着写一个angularjs版本的分页 ...
- C# WinForm自定义通用分页控件
大家好,前几天因工作需要要开发一个基于WinForm的小程序.其中要用到分页,最开始的想法找个第三方的dll用一下,但是后来想了想觉得不如自己写一个玩一下 之前的web开发中有各式各样的列表组件基本都 ...
- [转]Oracle分页之二:自定义web分页控件的封装
本文转自:http://www.cnblogs.com/scy251147/archive/2011/04/16/2018326.html 上节中,讲述的就是Oracle存储过程分页的使用方式,但是如 ...
- 自定义WPF分页控件
一.分页控件功能说明 实现如上图所示的分页控件,需要实现一下几个功能: 可以设置每页能够展示的最大列数(例如每页8列.每页16列等等). 加载的数组总数量超过设置的每页列数后,需分页展示. 可以直接点 ...
- WPF自定义DataGrid分页控件
新建Custom Control,名:PagingDataGrid 打开工程下面的Themes\Generic.xaml xaml里面代码替换如下 <Style x:Key="{x:T ...
- jquery自动生成分页控件 - pagetest.js
/* pagenum:当前页数 theallnum:总条数 themeiye:每页显示多少条 */ function pagetest(pagenum, theallnum, themeiye) { ...
- MVC中的自定义标签分页控件,仅供大家学习!!
public static HtmlString ShowPageNavigate(this HtmlHelper htmlHelper, int currentPage, int pageSize, ...
- jquery和css自定义video播放控件
下面介绍一下通过jquery和css自定义video播放控件. Html5 Video是现在html5最流行的功能之一,得到了大多数最新版本的浏览器支持.包括IE9,也是如此.不同的浏览器提供了不同的 ...
- ajax 分页控件,基于jquery
/* 分页插件,依赖jQuery库 version: 1.1.0 author: Harrison Cao release date: 2013-09-23 相对 v1.0版本 修正了分页居中 使用方 ...
随机推荐
- Basic Tutorials of Redis(5) - Sorted Set
The last post is mainly about the unsorted set,in this post I will show you the sorted set playing a ...
- Sublime Text 3 支持的热门插件推荐
SublimeText是一款非常精巧的文本编辑器,适合编写代码.做笔记.写文章.它用户界面十分整洁,功能非同凡响,性能快得出奇.这些非常棒的特性 包括任意跳转(Goto Anything).多重选择( ...
- shiro实现session共享
session共享:在多应用系统中,如果使用了负载均衡,用户的请求会被分发到不同的应用中,A应用中的session数据在B应用中是获取不到的,就会带来共享的问题. 假设:用户第一次访问,连接的A服务器 ...
- mysql主从之slave-skip-errors和sql_slave_skip_counter
一般来说,为了保险起见,在主从库维护中,有时候需要跳过某个无法执行的命令,需要在slave处于stop状态下,执行 set global sql_slave_skip_counter=1以跳过命令.但 ...
- 灵活的JavaScript(一)
自己对JavaScript的原型,继承,闭包,多少也还是了解些,但是平时写的东西都挺简单的,也用不上,所以感觉提升不大.于是乎买了一本<JavaScript设计模式>来提高下自己,这本是百 ...
- Gulp自动添加版本号
推荐使用gulp-rev + gulp-rev-collector是比较方便的方法,结果如下: "/css/style.css" => "/dist/css/sty ...
- iOS 字典或者数组和JSON串的转换
在和服务器交互过程中,会iOS 字典或者数组和JSON串的转换,具体互换如下: // 将字典或者数组转化为JSON串 + (NSData *)toJSONData:(id)theData { NSEr ...
- [转]HttpModule的认识
HttpModule是向实现类提供模块初始化和处置事件.当一个HTTP请求到达HttpModule时,整个ASP.NET Framework系统还并没有对这个HTTP请求做任何处理,也就是说此时对于H ...
- ViewPager轮播图
LoopViewPagerLayout无限轮播 项目地址:https://github.com/why168/LoopViewPagerLayout 支持三种动画: 支持修改轮播的速度: 支持修改滑动 ...
- swift学习笔记4——扩展、协议
之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询 ...