jquery提供很方法的js插件开发函数,关于jquery插件的开发教程,能够参考博主的上一篇博文《jQuery插件开发精品教程》,这里就再也不重复。javascript
因为项目中常常会使用到分页显示列表数据,这里就会用到关于一组分页按钮,以前的分页按钮是经过jsp的自定义标签来实现的一组分页按钮,关于jsp的自定义标签流程,能够参考《周记(jsp自定义标签)》。接触了jquery插件开发后,觉的js插件,无论是使用仍是管理,或者是二次开发,都比jsp的自定义标签使用起来方便,这里就经过js的插件形势编写分页按钮组。css
具体js插件代码以下:html
- ;(function($,window,document,undefined){
-
- var SimplePaging = function(ele,opt){
- this.$element = ele;
- this.defaults = {
- 'test':"aaa",
-
- 'cPage':1,
- 'tPage':1,
- 'clickFun':null,
-
- 'space':10,
- 'showLast':true,
- 'showNext':true,
- 'div':{
- 'float':'right',
- 'font-size':'14px',
- '-moz-user-select': 'none',
- '-webkit-user-select':'none',
- '-ms-user-select':'none',
- '-khtml-user-select':'none',
- 'user-select':'none'
- },
- 'btn':{
- 'display':'inline-block',
- 'position': 'relative',
- 'padding':'0 5px',
- 'letter-spacing':'0px',
- 'cursor':'pointer',
- },
- 'btnOver':{
- 'top':'-1px',
- },
- 'btnOut':{
- 'top':'0px',
- },
- 'btnAction':{
- 'display':'inline-block',
- 'position': 'relative',
- 'padding':'0 5px',
- 'letter-spacing':'0px',
- 'color':'#EA8010',
- 'top':'-1px',
- 'cursor':'default',
- },
- };
- this.options = $.extend({},this.defaults,opt);
- };
-
-
- SimplePaging.prototype = {
- test:function(){
- this.$element.html(this.options.test);
- return this.$element;
- },
- writePageBtn:function(){
- var cPage = this.options.cPage;
- var tPage = this.options.tPage;
- var space = this.options.space;
- var funName = this.options.clickFun;
- var c = Math.ceil(cPage/space);
-
- var id = this.$element.prop("id");
- var pageDiv = '';
-
- if(this.options.showLast){
- pageDiv = pageDiv + '<span class="pageSpan_'+id+'" onclick="'+funName+'(1)">|<</span>';
- }
-
- if(this.options.showNext){
- if(cPage>1){
- pageDiv = pageDiv + '<span class="pageSpan_'+id+'" onclick="'+funName+'('+(cPage-1)+')"><<</span>';
- }else{
- pageDiv = pageDiv + '<span class="pageSpan_'+id+'" onclick="javascript:confirm(\'当前已为第一页\');"><<</span>';
- }
- }
-
- for(var i=1;i<c;i++){
- pageDiv = pageDiv + '<span class="pageSpan_'+id+'" onclick="'+funName+'('+(i*space)+')">'+(i*space)+'</span>';
- }
-
- for(var i=(c-1)*space+1;i<=c*space&&i<=tPage;i++){
-
- if(cPage==i){
- pageDiv = pageDiv + '<span class="actionPageSpan_'+id+'">'+i+'</span>';
- }else{
- pageDiv = pageDiv + '<span class="pageSpan_'+id+'" onclick="'+funName+'('+i+')">'+i+'</span>';
- }
- }
-
- for(var i=c+1;i*space<=tPage;i++){
- pageDiv = pageDiv + '<span class="pageSpan_'+id+'" onclick="'+funName+'('+(i*space)+')">'+(i*space)+'</span>';
- }
-
- if(this.options.showNext){
- if(cPage<tPage){
- pageDiv = pageDiv + '<span class="pageSpan_'+id+'" onclick="'+funName+'('+(cPage+1)+')">>></span>';
- }else{
- pageDiv = pageDiv + '<span class="pageSpan_'+id+'" onclick="javascript:confirm(\'当前已为最后一页\');">>></span>';
- }
- }
-
- if(this.options.showLast){
- pageDiv = pageDiv + '<span class="pageSpan_'+id+'" onclick="'+funName+'('+tPage+')">>|</span>';
- }
- this.$element.html(pageDiv);
-
-
- var div = $.extend({},this.defaults.div,this.options.div);
- this.$element.css(div);
- var btn = $.extend({},this.defaults.btn,this.options.btn);
- this.$element.find(".pageSpan_"+id).css(btn);
- var obj = this;
- this.$element.find(".pageSpan_"+id).hover(function(){
- var btnOver = $.extend({},obj.defaults.btnOver,obj.options.btnOver);
- $(this).css(btnOver);
- },function(){
- var btnOut = $.extend({},obj.defaults.btnOut,obj.options.btnOut);
- $(this).css(btnOut);
- });
- this.$element.find(".actionPageSpan_"+id).css(this.options.btnAction);
- }
- };
-
-
- $.fn.simplePaging = function(options){
- var simplePaging = new SimplePaging(this,options);
- return simplePaging.writePageBtn();
- };
-
- })(jQuery,window,document);
注意:该js插件是基于jquery开发的,使用时需先导入jqueryjava
简单使用代码:jquery
- <html>
- <script src="jquery-1.10.2.js" ></script>
- <script src="simplePaging.js"></script>
- <script type="text/javascript">
-
- function load(){
- var param = {
- "cPage":1,
- "tPage":54,
- "clickFun":"test", //该函数接受一个cPage参数
- "showLast":false,
- "div":{"float":"left"}
- };
- $("#testDiv").simplePaging(param);
- }
-
- function test(cPage){
- //业务代码块
-
- //分页按钮组控制块
- var param = {
- "cPage":cPage,
- "tPage":54,
- "clickFun":"test",
- "showLast":false,
- "div":{"float":"left"}
- };
- $("#testDiv").simplePaging(param);
- }
-
- </script>
- <body onload="load()">
- <div id="testDiv">
-
- </div>
- </body>
- </html>
效果:web
插件参数说明:jquery插件
- this.defaults = {
- 'test':"aaa",
-
- 'cPage':1,
- 'tPage':1,
- 'clickFun':null,
-
- 'space':10,
- 'showLast':true,
- 'showNext':true,
- 'div':{ },
- 'btn':{ },
- 'btnOver':{ },
- 'btnOut':{ },
- 'btnAction':{},
- };
实际项目中的效果图jsp