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

jQuery 实现分页导航v2.0

    博客分类:
  • JS
阅读更多
之前有上传一个版本可以访问http://lym6520.iteye.com/admin/blogs/300600
浏览,跟上一个版本的最大区别是:可以通过样式控制显示效果,性能上也有一定的优化,具体可以对比下。



/**
 * 分页导航条
 * 2009/08/08
 * @author lym6520@qq.com 
 * @verson v2.1
 * @param {} fnName				翻页时执行的函数名(传入的第一个参数必须是“当前页码”))
 * @param {} fnNameParams		fnName函数的参数,数组形式(比如:var arr = new Array(); arr[0] = 1;arr[1] = "hello")
 * @param {} pagesize			页面显示记录数
 * @param {} totalItem			总记录数
 * @param {} showID				页面显示分页导航条的div  ID
 * 
 * css 类 样式: * 
 * .page_link :页码样式
 * .page_link a :页码连接 a 标签 样式
 * .page_current :当前页码
 * .page_showCurrentIndex :当前页
 * .page_showPageTotal :总页码
 * .page_info : 当前页码和总页码块
 */
function pagebar(fnName, fnNameParams, pagesize, totalItem, showID) {
	
	//临时存储分页条
	var strBuffer = [];

	//计算总页数
	var pagetotal = parseInt(totalItem / pagesize);
	//如果最后页记录数刚好15条记录,pagetotal不加1
	if ((totalItem / (pagesize * pagetotal)) > 1) {
		pagetotal = pagetotal + 1;
	}
    
    var fnParam = new Array();
    //如果这样 fnParam = fnNameParams;两个都指向同一引用
    for(var i = 0 ; i < fnNameParams.length; i++)
        fnParam[i] = "\"" + fnNameParams[i] + "\"";
     
    var pageIndex = parseInt(fnNameParams[0]);//当前页
       
    // 无记录  
    if (pagetotal == 0) {   
        $('#' + showID).empty();//清空翻页导航条   
        return;   
    }  
    
    // 分页   
    var front = pageIndex - 4;// 前面一截   
    var back = pageIndex + 4;// 后面一截   
           
    // 页码链接   
    // 首页, 上一页   
    if (pageIndex == 1) {   
        strBuffer.push("<span class='page_link page_current'>\u9996\u9875</span><span class='page_link page_current'>\u4E0A\u4E00\u9875</span>");   
    } else {
        fnParam[0] = 1 ;        
        var fn = fnName + "(" + fnParam + ")"; //组装执行的函数  
		//创建连接
		strBuffer.push("<span class='page_link'><a href = 'javascript:");
		strBuffer.push(fn);
//		strBuffer.push(fnName);
//		strBuffer.push("(");
//		strBuffer.push(fnParam);
//		strBuffer.push(")");
		strBuffer.push("'>\u9996\u9875</a></span>");
		
		fnParam[0] = pageIndex - 1 ;
		var fn = fnName + "(" + fnParam + ")"; //组装执行的函数  
		strBuffer.push("<span class='page_link'><a href = 'javascript:");	  
		strBuffer.push(fn);
		strBuffer.push("'>\u4E0A\u4E00\u9875</a></span>");
    }   
  
    if (pagetotal == 1) {   
        strBuffer.push("<span class='page_link'>1</span>");   
    }   
    // 如果当前页是5,前面一截就是1234,后面一截就是6789   
    if (pagetotal > 1) {   
        var tempBack = pagetotal;   
        var tempFront = 1;   
        if (back < pagetotal)   
            tempBack = back;   
        if (front > 1)   
            tempFront = front;   
        for (var i = tempFront; i <= tempBack; i++) {   
            if (pageIndex == i) { 
                strBuffer.push("<span class='page_link page_current'>"); 
                strBuffer.push(i);
                strBuffer.push("</span>");
                
            } else {   
                fnParam[0] = i;
                var fn = fnName + "(" + fnParam + ")"; //组装执行的函数  
                strBuffer.push("<span class='page_link'><a href = 'javascript:");   
                strBuffer.push(fn);
                strBuffer.push("'>");
                strBuffer.push(i);
                strBuffer.push("</a></span>");                
            }   
        }   
    }   
  
    // 下一页, 尾页   
    if (pageIndex == pagetotal) {   
        strBuffer.push("<span class='page_link page_current'>\u4E0B\u4E00\u9875</span><span class='page_link page_current'>\u5C3E\u9875</span>");   
    } else {   
        fnParam[0] = pageIndex + 1 ; 
        var fn = fnName + "(" + fnParam + ")"; //组装执行的函数  
        strBuffer.push("<span class='page_link'><a href = 'javascript:");  
        strBuffer.push(fn);
        strBuffer.push("'>\u4E0B\u4E00\u9875</a></span>");
           
        fnParam[0] = pagetotal ;  
        var fn = fnName + "(" + fnParam + ")"; //组装执行的函数  
        strBuffer.push("<span class='page_link'><a href = 'javascript:");
        strBuffer.push(fn);
        strBuffer.push("'> \u5C3E\u9875 </a></span>");
    }   
       
    // 显示当前页         
    strBuffer.push("<span class='page_info'><span class = 'page_showCurrentIndex'>");  
    strBuffer.push(pageIndex);
    strBuffer.push("</span>");
       
    // 斜线"/"   
    strBuffer.push("/");   
       
    // 显示总页数    
	strBuffer.push("<span class = 'page_showPageTotal'>");   
	strBuffer.push(pagetotal);
	strBuffer.push("</span></span>");
	
    $('#' + showID).html(strBuffer.join(''));    
}


浏览下效果图:

  • 大小: 1.6 KB
2
0
分享到:
评论

相关推荐

    ASP源码—HHYY ASP分页类(原印象分页类) v2.0 最终版.zip

    HHYY ASP分页类v2.0最终版的发布,表明其已经过充分的测试和调试,具有良好的兼容性和可扩展性,能够满足大部分ASP项目的需求。然而,为了适应不断变化的技术环境,开发者可能还需要关注ASP的新发展,如ASP.NET,...

    medicino_v2.0:医学模板

    "medicino_v2.0" 是一个专为医学领域设计的模板,它基于JavaScript技术构建,旨在提供一套高效、易用且功能丰富的界面布局和交互设计,以满足医疗行业对于信息化系统的需求。这个模板可能包含了多种页面布局、组件...

    Web2.0社区平台源码

     SpaceBuilder v2.3根据多个客户千万级站点的考验并结合性能测试数据,为了应对大数据量高并发站点对底层重新做了优化,使SpaceBuilder可以更好的实现分布式部署,为面向高端做好了准备。本次优化主要体现在以下几...

    SpaceBuilder v3.1[免安装]源码

    SpaceBuilder是一款基于asp.net mvc业内领先的web2.0建站平台。结合博客、群组、论坛 、微博、分享、相册、文件、活动、投票、资讯等应用模块,可以一站式快速的搭建具有 SNS特征的在线社区。借助SpaceBuilder平台的...

    ExtAspNet_v2.3.2_dll

    支持的浏览器: IE 7.0+, Firefox 3.0+, Chrome 2.0+, Opera 9.5+, Safari 3.0+ 注:ExtAspNet基于一些开源的程序ExtJS, HtmlAgilityPack, Nii.JSON, YUICompressor。 示例: http://extasp.net/ 开源: ...

    asp.net博客系统

    本博客采用ASP.NET2.0 c# + MSSQL2005 + XML + jquery + anthem.net开发,暂时为单用户版本,以下简单介绍... 程序基于类似petshop的标准三层架构,方便维护与扩展(不过暂时只支持MSSQL数据库-_-||) 前台使用...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    +2009-08-09 v2.0 beta5 +ExtAspNet和Asp.net的提交按钮兼容问题(feedback:千帆)。 -在2009-03-03 v1.3.0曾经提到这个兼容问题,并有这样的规则,如果Asp.net的按钮AJAX提交,必须设置UseSubmitBehavior="false" ...

    java开源包3

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包4

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    文章管理系统

    纠正蒙层窗口分页导航含中文会错误的BUG 5.后台文章编辑,内容摘要编码化,防止破坏前台HTML代码 6.其他小细节修复 2011年10月13日 BUG修复+细节完善 ★更新方式:admin文件夹改成你后台目录名,然后补丁包里...

    asoft签到管理系统tykq3.5_build20110125

    将所有文件放到IIS虚拟目录,在浏览器运行asoft_install_v x.x build xxxx.asp,选择“全新安装”即可。(asoft_tykq x.x build xxxx_all.xml是封装好的X.X完整版安装程序,适合懒人使用) 2)、升级安装 将所有...

    java开源包1

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包11

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包2

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包6

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包5

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包10

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包8

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包7

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

Global site tag (gtag.js) - Google Analytics