jquery插件封装
HTML
<!DOCTYPE html>
<html>
<head>
<title></title>
<style>
.pageInit
{
padding: 5px 10px;
border: 1px solid #ff9600;
text-decoration: none;
color: #ff6500;
margin-left: 10px;
}
.pageSelected
{
padding: 5px 10px;
border: 1px solid #ff6500;
text-decoration: none;
color: #ff6500;
background: #ffbe94;
margin-left: 10px;
}
</style>
<script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
<script src="Scripts/JScript1.js" type="text/javascript"></script>
<script>
$(function () {
console.log($("table tbody tr").length);
//类级别 ,通过jQuery访问(即$)
//$.simplePaging({ table: $("table"), pageSize: 5, currentPage: 0 });
//对象级别,通过对象访问(即$("table"))
$("table").simplePaging({ pageSize: 6, currentPage: 1 });
});
</script>
</head>
<body>
<table>
<thead>
<tr>
<td>
第一列
</td>
<td>
第二列
</td>
<td>
第三列
</td>
<td>
第四列
</td>
<td>
第五列
</td>
</tr>
</thead>
<tbody>
<tr>
<td>
1
</td>
<td>
1
</td>
<td>
1
</td>
<td>
1
</td>
<td>
1
</td>
</tr>
<tr>
<td>
2
</td>
<td>
2
</td>
<td>
2
</td>
<td>
2
</td>
<td>
2
</td>
</tr>
<tr>
<td>
3
</td>
<td>
3
</td>
<td>
3
</td>
<td>
3
</td>
<td>
3
</td>
</tr>
<tr>
<td>
4
</td>
<td>
4
</td>
<td>
4
</td>
<td>
4
</td>
<td>
4
</td>
</tr>
<tr>
<td>
5
</td>
<td>
5
</td>
<td>
5
</td>
<td>
5
</td>
<td>
5
</td>
</tr>
<tr>
<td>
6
</td>
<td>
6
</td>
<td>
6
</td>
<td>
6
</td>
<td>
6
</td>
</tr>
<tr>
<td>
7
</td>
<td>
7
</td>
<td>
7
</td>
<td>
7
</td>
<td>
7
</td>
</tr>
<tr>
<td>
8
</td>
<td>
8
</td>
<td>
8
</td>
<td>
8
</td>
<td>
8
</td>
</tr>
<tr>
<td>
9
</td>
<td>
9
</td>
<td>
9
</td>
<td>
9
</td>
<td>
9
</td>
</tr>
<tr>
<td>
11
</td>
<td>
11
</td>
<td>
11
</td>
<td>
11
</td>
<td>
11
</td>
</tr>
<tr>
<td>
13
</td>
<td>
13
</td>
<td>
13
</td>
<td>
13
</td>
<td>
13
</td>
</tr>
<tr>
<td>
23
</td>
<td>
23
</td>
<td>
23
</td>
<td>
23
</td>
<td>
23
</td>
</tr>
<tr>
<td>
33
</td>
<td>
33
</td>
<td>
33
</td>
<td>
33
</td>
<td>
33
</td>
</tr>
<tr>
<td>
43
</td>
<td>
43
</td>
<td>
43
</td>
<td>
43
</td>
<td>
43
</td>
</tr>
<tr>
<td>
53
</td>
<td>
53
</td>
<td>
53
</td>
<td>
53
</td>
<td>
53
</td>
</tr>
<tr>
<td>
63
</td>
<td>
63
</td>
<td>
63
</td>
<td>
63
</td>
<td>
63
</td>
</tr>
<tr>
<td>
73
</td>
<td>
73
</td>
<td>
73
</td>
<td>
73
</td>
<td>
73
</td>
</tr>
<tr>
<td>
83
</td>
<td>
83
</td>
<td>
83
</td>
<td>
83
</td>
<td>
83
</td>
</tr>
<tr>
<td>
93
</td>
<td>
93
</td>
<td>
93
</td>
<td>
93
</td>
<td>
93
</td>
</tr>
<tr>
<td>
113
</td>
<td>
113
</td>
<td>
113
</td>
<td>
113
</td>
<td>
113
</td>
</tr>
<tr>
<td>
123
</td>
<td>
123
</td>
<td>
123
</td>
<td>
123
</td>
<td>
123
</td>
</tr>
</tbody>
</table>
</body>
</html>
jQuery插件(文件名:JScript.js)
/** * 插件内部方法,外部无法访问,要求:table的绘制需要规范,即table需要采用如下格式: * <table> * <thead> * </thead> * <tbody> * </tbody> * </table> * 说明:本分页函数仅对tbody中的行进行分页显示 * * @param {} table table对象 。 必须参数 * @param {} pageSize 每页显示的行数 。必选参数 * @currentPage 当前页,索引值从0开始,默认值为0,即0代表第一页。 可选参数 */ (function ($) { ////类级别 ,通过jQuery访问(即$),访问方式如:$.simplePaging({ table: $("table"), pageSize: 5, currentPage: 0 }); // var defaults = { // mytable: null, // pageSize: 5, // currentPage: 0 // }; // $.extend({ // simplePaging: function (options) { // $.extend(defaults, options); //使用jQuery.extend 覆盖插件默认参数 // return paging(options.mytable, options.pageSize, options.currentPage); // } // }); /*对象级别,通过对象访问(即$("table")) 访问方式如:$("table").simplePaging({ pageSize: 6, currentPage: 1 });*/ var defaults = { pageSize: 5, currentPage: 0 }; $.fn.simplePaging = function (options) { var opts = $.extend({}, defaults, options); //使用jQuery.extend 覆盖插件默认参数 return this.each(function () { //这里的this 就是 jQuery对象 //遍历所有的要高亮的dom,当调用 highLight()插件的是一个集合的时候。 var $this = $(this); //获取当前dom 的 jQuery对象,这里的this是当前循环的dom //根据参数来设置 dom的样式 paging($this, opts.pageSize, opts.currentPage); }); }; //插件内部方法,外部无法访问 function paging(table, pageSize, currentPage) { var $table = $(table); //表格对象 if (currentPage == null || currentPage < 1) { currentPage = 0; } var sumRows = $table.find('tbody tr').length; //总行数 var sumPages = Math.ceil(sumRows / pageSize); //总页数 if (sumPages == currentPage) { currentPage--; } //默认所有行都隐藏,然后根据分页显示 $table.find('tbody tr').hide().slice(currentPage * pageSize, (currentPage + 1) * pageSize).show(); //避免多次调用产生重复的页码 $table.next("div[tablePagingDiv]").remove(); if (sumPages > 1) { $table.bind('paging', function () { //默认所有行都隐藏,然后根据分页显示 $table.find('tbody tr').hide().slice(currentPage * pageSize, (currentPage + 1) * pageSize).show(); }); //页码div var $pager = $('<div tablePagingDiv="" style="height:40px;line-height:40px;"></div>'); for (var pageIndex = 0; pageIndex < sumPages; pageIndex++) { $('<a href="#"><span>' + (pageIndex + 1) + '</span></a>').bind('click', { 'newPage': pageIndex }, function (event) { currentPage = event.data['newPage']; $(this).addClass('pageSelected').siblings().removeClass('pageSelected'); //为每一个要显示的页数上添加触发分页函数 $table.trigger('paging'); }).appendTo($pager); $pager.append(" "); } //添加初始化css $('a', $pager).addClass('pageInit'); $('a:eq(' + currentPage + ')', $pager).addClass('pageSelected').siblings().removeClass('pageSelected'); $pager.insertAfter($table); //在table上触发paging事件 $table.trigger('paging'); } } })(jQuery);

浙公网安备 33010602011771号