`
lym6520
  • 浏览: 704189 次
  • 性别: Icon_minigender_1
  • 来自: 福建
社区版块
存档分类
最新评论

写了个Jquery分页导航条插件

    博客分类:
  • JS
阅读更多
这两天学习jquery插件开发,把之前写的一个分页导航条写成了JQuery插件。写成插件形式调用起来更简单了 ,ui大家可以根据自己的实际需要做调整。

jquery.pagebar.1.0.0.js
/// <reference path="jquery.js"/>
/*
* jpagebar
* version: 1.0.0 (01/12/2009)
* @ jQuery v1.3.*
*
* 
* usage as:
*     $.fn.jpagebar({ 
*				//pagebar 对象div
*               renderTo: $("#pagebarDiv2"),               
*               //总页码
*				totalpage: 10,
*				//当前页码
*				currentPage: 1,
*				//分页条样式
*				pagebarCssName: 'pagebar',	
*				//页码样式
*				pageNumberCssName:'page_number',
*				//首页、上一页、下一页、尾页样式
*				pageNameCssName:'pageName',
*				//选中首页、上一页或下一页、尾页样式
*				currentPageNameCssName:'current_pageName',
*				//当前选中页码样式
*				currentPageNumberCssName:'current_page_number',
*				//显示总页码样式
*				totalpageNumberCssName:'totalpage_number',	
*				//点击页码action
*				onClickPage : function(pageIndex){
*								//重新定义jpagebar的显示
*								$.fn.setCurrentPage(this,pageIndex);
*								//用户其他操作在这里
*								//...
*							}
*	});     
* Copyright 2009 LYM [ lym6520@qq.com ] 
*/
(function($) {
    $.extend($.fn, {        
        jpagebar: function(setting) {
            var pb = $.extend({
                //pagebar 对象div
                renderTo: $(document.body),               
                //总页码
				totalpage: 0,
				//当前页码
				currentPage: 0,
				//分页条样式
				pagebarCssName: 'pagebar',	
				//页码样式
				pageNumberCssName:'page_number',	
				//首页、上一页、下一页、尾页样式
				pageNameCssName:'pageName',
				//选中首页、上一页或下一页、尾页样式
				currentPageNameCssName:'current_pageName',
				//当前选中页码样式
				currentPageNumberCssName:'current_page_number',
				//显示总页码样式
				totalpageNumberCssName:'totalpage_number',	
				//点击页码action
				onClickPage : function(pageIndex){
									
								}
            }, setting);
			
				
			pb.resetPagebar = function(){	
				var _this = this;
				_this.renderTo = (typeof _this.renderTo == 'string' ? $(_this.renderTo) : _this.renderTo);

				/* ---------->
				html :
				<div> ---->pagebar
					<a>首页</a>
					<a>上一页</a>
					<a>&nbsp;</a>...    ----> 显示页码
					<a>下一页</a>
					<a>尾页</a>
					<span class="show_page_detail">			---->显示信息      
						<span class="current_page">currentpage</span>  ----> 显示当前页码
						<span>/</span> 
						<span class="total_page">totalpage</span>		----> 显示总页码
					</span>	       
				</div>
				<-----------*/
				var pagebar = _this.renderTo;
				pagebar.attr('class',_this.pagebarCssName);

				//清空分页导航条   
				pagebar.empty();

				if(totalpage = 0){				
					return ;
				}
				// 分页   
				var front_block = parseInt(_this.currentPage) - 5;// 当前页码前面一截   
				var back_block = parseInt(_this.currentPage) + 5;// 当前页码后面一截   
				
				//处理首页、上一页
				if(_this.currentPage == 1 ){
					//当前页为第一页
					$('<a>首页</a> ').attr('class',_this.pageNameCssName + ' ' + _this.currentPageNameCssName)
						  .appendTo(pagebar);
					$('<a>上一页</a> ').attr('class',_this.pageNameCssName + ' ' + _this.currentPageNameCssName)
						 .appendTo(pagebar);
				
				}else{
					//当前页大于第一页
					$('<a>首页</a> ').attr('class',_this.pageNameCssName)
						  .bind("click", function(){										  
											  _this.onClickPage(1);
											})
							.appendTo(pagebar);
					$('<a>上一页</a> ').attr('class',_this.pageNameCssName)
						 .bind("click", function(){										 
											  _this.onClickPage(_this.currentPage-1);
											})
							.appendTo(pagebar);
				}

				//处理数字页码
				
				if(_this.totalpage == 1){
					//共1页
					$('<a>1</a> ').attr('class',_this.currentPageNumberCssName)
						  .bind("click", function(){										  
											 _this.onClickPage(1);
											})
							.appendTo(_this.renderTo);
					
				}else{
					//有多页
					var tempBack_block = _this.totalpage;   
					var tempFront_block = 1;   
					if (back_block < _this.totalpage)   
						tempBack_block = back_block;   
					if (front_block > 1)   
						tempFront_block = front_block;  
					
					for (var i = tempFront_block; i <= tempBack_block; i++) {  					
						if (_this.currentPage == i) { 	
							//当前页
							$('<a>'+i+'</a> ').attr('class',_this.pageNumberCssName + ' ' + _this.currentPageNumberCssName)
								.appendTo(pagebar);
						} else {   
							 $('<a>'+i+'</a> ').attr('class',_this.pageNumberCssName)
								 .bind("click", function(){										
											  _this.onClickPage(this.innerHTML);
											}).appendTo(pagebar);
							
						}   
					} 			
				}

				 // 下一页, 尾页  处理
				if (_this.currentPage == _this.totalpage) {  
					//当前页为最后一页
					$('<a>下一页</a> ').attr('class',_this.pageNameCssName + ' ' + _this.currentPageNameCssName)
						  .appendTo(pagebar);
					$('<a>尾页</a> ').attr('class',_this.pageNameCssName + ' ' + _this.currentPageNameCssName)
						 .appendTo(pagebar);
				} else {   
					$('<a>下一页</a> ').attr('class',_this.pageNameCssName)
								.bind("click", function(){										  
											  _this.onClickPage(parseInt(_this.currentPage)+1);
							})
						  .appendTo(pagebar);
					$('<a>尾页</a> ').attr('class',_this.pageNameCssName)
								.bind("click", function(){										  
											  _this.onClickPage(_this.totalpage);
							})
						.appendTo(pagebar);  
				}  
				

				// 红色字体显示当前页   
				$('<span>'+_this.currentPage+'</span> ').attr('class',_this.currentPageNumberCssName)
					 .appendTo(pagebar); 
				$('<span>/</span>').appendTo(pagebar); 
				$('<span>'+_this.totalpage+'</span> ').attr('class',_this.totalpageNumberCssName)
				  .appendTo(pagebar); 

				//pagebar.find("a").attr('class',_this.pageNumberCssName);
			}
			pb.resetPagebar();
        },
		setCurrentPage:function(_this,currentPage){			
			_this.currentPage = currentPage;
			_this.resetPagebar(_this);
		}
       
    });
})(jQuery);


预览下效果图:



  • 大小: 2.1 KB
0
0
分享到:
评论
2 楼 lym6520 2009-12-05  
谢谢你的建议,我想下个版本可以控制如何显示。
1 楼 yuantong 2009-12-05  
建议这样:
[First][Pre][1][2][3]...[98][99][Next][Last]

选择到第3页的时候,自动显示...中的页码,保持导航栏上一定输量的页码。如此时选择的是第4页,显示的是:[First][Pre][1][2]...【4】...[98][99][Next][Last]

依次类推

相关推荐

    jquery分页插件-内有演示说明

    **jQuery分页插件**是Web开发中常用的一种工具,用于在大量数据中实现高效的页面导航,提升用户体验。本资源包含一个演示说明,使得理解和应用变得更加直观和简单。以下将详细解析jQuery分页插件的核心知识点及其...

    html 自己写的jquery分页插件

    4. **内容更新**:将获取的数据更新到页面指定区域,同时更新分页导航的状态,比如禁用已到达边缘的“上一页”或“下一页”。 5. **动态渲染**:为了优化性能,可使用模板引擎或 JavaScript 动态创建 HTML 元素来...

    jQueryPager(JQuery分页插件pagination实现Ajax分页)

    jQueryPager是一款轻量级的jQuery分页插件,它允许开发者通过Ajax无刷新的方式实现网页数据的分页加载。此插件名为`pagination`,在CSDN等技术交流平台上被广泛讨论和分享。 **1. jQuery与Ajax** jQuery是一个强大...

    jquery分页插件带总数分页代码

    这里提到的"jquery分页插件带总数分页代码"可能是指包含总条数显示功能的插件,例如"jQuery Pagination Plugin with Total Records"。这类插件通常提供以下功能: 1. **显示页码**:插件会根据数据总量和每页显示的...

    jQuery静态分页插件.zip

    - 这款jQuery静态分页插件通过JavaScript代码动态生成分页导航,包括“上一页”、“下一页”按钮和页码选择器。它根据总数据量和每页显示的数量计算出总页数,并创建对应的导航元素。 - 插件通常包含初始化函数、...

    jquery分页插件

    4. **动态生成分页链接**:插件会根据总页数和当前页自动创建分页导航条,通常包括数字页码、上一页和下一页的链接,以及可能的跳转至首尾页的链接。 5. **状态维护**:插件能够记住用户的分页状态,如当前页码,...

    jQuery分页插件页码跳转代码.zip

    在网页开发中,分页是常见的一种数据展示方式,尤其...通过学习和理解这个代码示例,开发者可以掌握jQuery分页插件的使用,提升网页开发的效率。同时,这也是一种实践JavaScript事件处理、DOM操作和AJAX请求的好机会。

    JQuery分页,使用JQuery分页插件

    **jQuery分页插件详解** 在网页开发中,分页是一种常见的数据展示方式,尤其当数据量过大,一次性加载所有内容会影响页面性能时,分页就显得尤为重要。jQuery,作为一个轻量级、高效的JavaScript库,提供了许多插件...

    Jquery分页条

    本篇文章将深入探讨jQuery分页条的原理、实现方法以及常见插件的应用。 首先,我们需要理解分页的基本概念。分页是将大量数据分为多个部分(页)进行显示,每一页展示一部分数据,用户可以通过点击页码或导航按钮在...

    jQuery Ajax分页插件(jquery.pagination)

    它可以根据需要动态加载数据,并显示分页导航条,允许用户轻松地在页面之间切换。 ### 插件使用步骤 1. **引入依赖**:首先,确保在HTML文件中引入jQuery库和分页插件的JavaScript文件。通常,这涉及到在`&lt;head&gt;`...

    jQuery分页

    jQuery分页插件通常是轻量级的JavaScript库,它们简化了分页功能的实现,让开发者无需从头编写复杂的分页逻辑。 jQuery分页的核心原理在于利用AJAX(异步JavaScript和XML)技术,通过动态加载内容来实现页面的无...

    jquery分页插件使用

    **jQuery分页插件使用详解** 在Web开发中,数据量大时,为了提高用户体验,通常会采用分页的方式来展示信息。jQuery分页插件因其轻量级、易用性而受到开发者们的青睐。本教程将详细介绍如何使用jQuery分页插件,并...

    jQuery动态表格数据分页插件

    `css`目录下的文件用于定义表格和分页导航栏的样式,而`js`目录中的文件则包含了jQuery插件的实现代码。开发者可以通过修改这些文件,定制自己的分页样式和功能。 总结来说,"jQuery动态表格数据分页插件"是一款...

    类似播放器jQuery分页插件.zip

    【标题】"类似播放器jQuery分页插件.zip"中包含的是一个名为jPaginator的jQuery分页插件,它的设计灵感来源于媒体播放器,旨在为网页分页功能提供一种新颖且用户友好的交互体验。这款插件通过模拟媒体播放器的操作...

    漂亮实用的jQuery分页样式插件代码

    本资源提供了一款“漂亮实用的jQuery分页样式插件代码”,适用于那些希望为网站添加美观、易用的分页功能的开发者。这款插件采用红色主题,具有无刷新的分页效果,并且集成了搜索功能,增强了用户体验。 首先,...

    jQuery带分页动态数据表格插件

    CSS可以定义单元格的边框、颜色、对齐方式,以及分页导航的样式。通过类选择器或者ID选择器,我们可以精确地控制各个元素的样式。 5. **事件监听**:为了响应用户的分页操作,我们需要为导航元素绑定点击事件。当...

    jquery easyui pagination 分页插件扩展

    jQuery EasyUI中的分页组件默认提供了基本的分页功能,包括页码导航、每页显示条数的选择等。然而,有时我们可能需要更高级或定制化的功能,这就需要对分页插件进行扩展。 扩展通常有两种主要方式: 1. **代码扩展...

    无可挑剔的jQuery分页插件jquery.paginate.zip

    jQuery分页插件通常包含一系列预定义的样式和方法,使得开发者可以快速创建具有专业外观的分页导航。对于"jquery.paginate.zip"这个压缩包,我们可以预期它将包含以下关键内容: 1. **使用须知.txt**:这通常会提供...

    使用jquery实现表格动态分页

    **一、jQuery分页插件的选择与使用** jQuery提供了许多分页插件,例如`jQuery DataTables`、`jQuery Pagination`等。以`jQuery DataTables`为例,它是广泛使用的表格增强插件,内置了强大的分页功能。 1. **安装和...

    jQuery 分页插件

    jQuery分页插件就是一种方便、高效地实现这一功能的工具。本篇文章将深入探讨jQuery分页插件的工作原理、常用插件及其实现方式。 一、jQuery分页插件的基本原理 jQuery分页插件基于JavaScript库jQuery,通过动态...

Global site tag (gtag.js) - Google Analytics