`
lym6520
  • 浏览: 695867 次
  • 性别: 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
分享到:
评论

相关推荐

    Web2.0社区平台源码

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

    SpaceBuilder v3.1[免安装]源码

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

    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" ...

    WordPress主题 大前端 阿里百秀 XIU ALIBAIXIU 小清新CMS高级主题[更新v3.2]

    jQuery加载:可设置在头部或者底部加载,底部有助于提高页面内容显示速度 文章小部件开启:可选择开启:阅读量、点赞、列表评论数、列表作者名字前加网站名称 首页近期发布文章数目:告诉用户最近你发布了多少文章 网站...

    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/ 开源: ...

    JAVA上百实例源码以及开源项目

    Java加密解密工具集 JCT v1.0源码包 5个目标文件 内容索引:JAVA源码,综合应用,JCT,加密解密  WDSsoft的一款免费源代码 JCT 1.0,它是一个Java加密解密常用工具包。 Java局域网通信——飞鸽传书源代码 28个目标文件...

    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文件夹改成你后台目录名,然后补丁包里...

    JAVA上百实例源码以及开源项目源代码

    图片到图片装载器、绘制火焰效果的X坐标,Y坐标、得到X坐标,Y坐标值、绘制火焰效果Image…… Java加密解密工具集 JCT v1.0源码包 5个目标文件 内容索引:JAVA源码,综合应用,JCT,加密解密 WDSsoft的一款免费源代码 JCT ...

    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 为你的网站提供网站查询,并且可以...

Global site tag (gtag.js) - Google Analytics