www.gusucode.com > 电影影院门户论坛源码程序网站 > 整站安装/整站源码/template/wfdsoft_magnet_161206/deancss/js/jquery.pagnation.js

    

(function(dfsj_jq){

	dfsj_jq.fn.pagination = function(option){

		var self = this,

			cached = {};

		option = dfsj_jq.extend({

			target:dfsj_jq('ul li'),

			perpage:10,

			pagetotal:10,

			r_num:10

		},option);

		option.total = Math.ceil(option.pagetotal/option.perpage);

		//添加分页元素相应的事件

		var initEvent = function(ele){

			ele.find('a').bind('click',function(){

				 var self = dfsj_jq(this);

				 ele.children().remove();

				 ele.html(makePagnation(self.attr('page')) || '');

				 initEvent(ele);

				 dfsj_jq(window).scrollTop(670);

			});

			ele.find('.custompage2').bind('keydown',function(event){

				if(event.keyCode == 13){

					var self = dfsj_jq(this),

						val = self.val(),

						total = self.attr('maxPage');

					if(/[\d]+/.test(val)){

						val = parseInt(val);

						if(val>0 && val <= total){

							ele.children().remove();

							ele.html(makePagnation(val) || '');

							initEvent(ele);

						}

					}



				}

			})

		}

		//生成分页HTML

		var makePagnation = function(cur){

			cur = parseInt(cur);

			if(cur <1 || cur > option.total)return '';

			//控制显示的行数

			option.target.each(function(key){

				var max = cur * option.perpage - 1,

					min = (cur-1) * option.perpage

					self = dfsj_jq(this);

				if(key>=min && key <=max){

					self.show();

					var img = self.find('.ma_list_img img'),

					img_src = img.attr('src');

					!img_src && img.attr('src',img.attr('src_data'));

				}else{

					self.hide();

				}

			});

			//在分页缓存中查找

			if(cached[cur])return cached[cur];

			 var i =2,

				 tmpl = ['<div class="pages cl">'];

			 if(cur == 1){

				 r_num = Math.min(option.r_num,option.total);

				 tmpl.push('<span>1</span>');

				 for(;i<=r_num;i++)tmpl.push('<a page="'+i+'" href="javascript:;">'+i+'</a>');

				 if(option.total > i-1){

					tmpl.push('<a class="last" page="'+option.total+'" href="javascript:;">'+option.total+'</a>');

					tmpl.push('<a class="a1" page="2" >下一页</a>');

				 }

			 }else if(cur == option.total){

				 r_num = Math.max(1,option.total-2);

				 if(r_num >1){

					 tmpl.push('<a class="a1" page="'+(option.total-1)+'" href="javascript:;">上一页</a>');

					 tmpl.push('<a class="first" page="1" href="javascript:;">1</a>');

				 }

				 for(i=r_num;i<option.total;i++)tmpl.push('<a page="'+i+'" href="javascript:;">'+i+'</a>');

				 tmpl.push('<span>'+option.total+'</span>');

			 }else{

				 if(cur-2>0){

					 tmpl.push('<a class="a1" page="'+(cur-1)+'" href="javascript:;">上一页</a>');

					 tmpl.push('<a class="first" page="1" href="javascript:;">1</a>');

				 }

				 tmpl.push('<a page="'+(cur-1)+'" href="javascript:;">'+(cur-1)+'</a>');

				 tmpl.push('<span>'+cur+'</span>');

				 tmpl.push('<a page="'+(cur+1)+'" href="javascript:;">'+(cur+1)+'</a>');

				 if(cur+2 <= option.total){

					tmpl.push('<a class="last" page="'+option.total+'" href="javascript:;">'+option.total+'</a>');

					tmpl.push('<a class="a1" page="'+(cur+1)+'" >下一页</a>');

				 }

			 }

			 tmpl.push('</div>');

			 cached[cur] = tmpl.join('');

			 return cached[cur];

		}

		return this.each(function(){

			var ele = dfsj_jq(this);

			ele.html(makePagnation(1) || '');

			initEvent(ele);

		})

	}

})(jQuery);