/************************************************************************************** * jQuery Paging 0.1.7 * by composite (ukjinplant@msn.com) * http://composite.tistory.com * This project licensed under a MIT License. **************************************************************************************/; (function($){ //default properties. var a=/a/i,defs={ liitem:'li', item:'a',next:'[>{5}]',prev:'[{4}<]',format:'[{0}]', itemClass:'',appendhtml:'',sideClass:'paging-side',prevClass:'paging-side', itemCurrent:'active',length:10,max:1,current:1,append:false ,href:'#{0}',event:true,first:'[1<<]',last:'[>>{6}]' },InStr=function(strSearch, charSearchFor) { return strSearch.indexOf(charSearchFor); },format=function(str){ var arg=arguments; return str.replace(/\{(\d+)\}/g,function(m,d){ if(+d<0) return m; else return arg[+d+1]||""; }); },item,make=function(op,page,cls,str){ var is_current = false; if( InStr( cls , op.itemCurrent) > -1 ){ item=document.createElement("strong"); is_current = true; } else { item=document.createElement(op.item); } item.className=cls; item.innerHTML=format(str,page,op.length,op.start,op.end,op.start-1,op.end+1,op.max); if(a.test(op.item)) item.href=format(op.href,page); if(op.event){ $(item).bind('click',function(e){ var fired=true; if($.isFunction(op.onclick)) fired=op.onclick.call(item,e,page,op); if(fired==undefined||fired) op.origin.paging($.extend({},op,{current:page})); return fired; }); /* $liitem= $(document.createElement(op.liitem)); $liitem.addClass(cls); $liitem.append($(item)); */ if(op.appendhtml){ $(item).append(op.appendhtml); } $(item).appendTo(op.origin); if( is_current ){ $(item).prepend('열린'); } else { (op.origin).append('\n'); } //bind event for each elements. var ev='on'; switch(str){ case op.prev:ev+='prev';break; case op.next:ev+='next';break; case op.first:ev+='first';break; case op.last:ev+='last';break; default:ev+='item';break; } if($.isFunction(op[ev])) op[ev].call(item,page,op); } return item; }; $.fn.paging=function(op){ op=$.extend({origin:this},defs,op||{});this.html(''); if(op.max<1) op.max=1; if(op.current<1) op.current=1; op.start=Math.floor((op.current-1)/op.length)*op.length+1; op.end=op.start-1+op.length; if(op.end>op.max) op.end=op.max; if(!op.append) this.empty(); //prev button if(op.current>op.length){ //if(op.first!==false) make(op,1,op.sideClass,op.first); make(op,op.start-1,op.prevClass,op.prev); } //pages button for(var i=op.start;i<=op.end;i++){ make(op,i,op.itemClass+(i==op.current?' '+op.itemCurrent:''),op.format); } //next button if(op.current<=Math.floor(op.max/op.length)*op.length){ if(op.max > op.length && op.max > op.end ){ make(op,op.end+1,op.sideClass,op.next); } //if(op.last!==false) make(op,op.max,op.sideClass,op.last); } //last button }; })(jQuery);