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

jQuery 实现分页导航 v2.0(附demo)

    博客分类:
  • JS
阅读更多
今天整理了下之前写的分页导航条,感觉之前的那个很不灵活,执行方法传入的参数只能一个操作类型和一个当前页,想要多传入几个参数就比较麻烦,现在重新整理了下,并附上了demo,希望大家可以进来改进改进,共享资源!
/**
 * 分页导航条
 * 09/01/17
 * @author lym6520@qq.com 
 * @verson v2.0
 * @param {} fnName			翻页时执行的函数名(传入的第一个参数必须是“当前页码”))
 * @param {} fnNameParams		fnName函数的参数,数组形式(比如:var arr = new Array(); arr[0] = 1;arr[1] = "hello")
 * @param {} pagetotal			总页码
 * @param {} totalItem			总记录数
 * @param {} showID			页面显示分页导航条的div  ID
 */
function pageNavigation(fnName, fnNameParams, pagetotal, totalItem, showID) {   
    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;// 后面一截   
    
    $('#' + showID).empty();//清空翻页导航条   
       
    // 页码链接   
    // 首页, 上一页   
    if (pageIndex == 1) {   
        $('#' + showID).append("首页 上一页 ");   
    } else {
        fnParam[0] = 1 ;
        var fn = fnName + "(" + fnParam + ")"; //组装执行的函数  
		var str = "<a href = 'javascript:" + fn + "'>首页</a> ";//创建连接
		$('#' + showID).append(str);
		
		fnParam[0] = pageIndex - 1 ;
	    var fn = fnName + "(" + fnParam + ")"; //组装执行函数         		
		var str = "<a href = 'javascript:" + fn + "'>上一页</a> ";//创建连接
		$('#' + showID).append(str);	         
    }   
  
    if (pagetotal == 1) {   
        $('#' + showID).append("1 ");   
    }   
    // 如果当前页是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) {   
                var str = " " + i + " ";   
                $('#' + showID).append(str);   
            } else {   
                fnParam[0] = i;
                var fn = fnName + "(" + fnParam + ")"; //组装执行的函数   
                var str = "<a href = 'javascript:" + fn + "'>[" + i + "]</a>";//创建连接   
                $('#' + showID).append(str);   
            }   
        }   
    }   
  
    // 下一页, 尾页   
    if (pageIndex == pagetotal) {   
        $('#' + showID).append("下一页 尾页 ");   
    } else {   
        fnParam[0] = pageIndex + 1 ;
        var fn = fnName + "(" + fnParam + ")"; //组装执行的函数   
        var str = " <a href = 'javascript:" + fn + "'>下一页</a> ";//创建连接   
        $('#' + showID).append(str);           
           
        fnParam[0] = pagetotal ;
        var fn = fnName + "(" + fnParam +  ")"; //组装执行的函数   
        var str = "<a href = 'javascript:" + fn + "'> 尾页 </a> ";//创建连接   
        $('#' + showID).append(str);           
    }   
       
    // 红色字体显示当前页   
    var str = "<font color = 'red'>" + pageIndex +"</font>";       
    $('#' + showID).append(str);   
       
    // 斜线"/"   
    $('#' + showID).append("/");   
       
    // 蓝色字体显示总页数   
    var str = "<font color = 'blue'>" + pagetotal +"</font>";      
    $('#' + showID).append(str);  
    
}

分享到:
评论
24 楼 anywing 2010-01-15  
我的问题解决了,还是用的http://lym6520.iteye.com/blog/540580 插件,结合自己的变量,使用了location.href,后来又遇到一些url编码的问题,但是现在总算搞定,谢谢楼主。
23 楼 lym6520 2010-01-15  
anywing 写道
是的,页码状态是改变了,但是页面没有翻转啊,我怎么让页码状态改变的同时,页面也刷新呢?

pagebar('pageN',arr,10,100,'showDiv');  这个函数的pageN是函数名,点击翻页的时候就是调用这个函数的。arr是个数组,其中第一个参数是当前页码,其他参数是你执行pageN函数需要用到的参数,这个就你自己定义了。
22 楼 anywing 2010-01-15  
是的,页码状态是改变了,但是页面没有翻转啊,我怎么让页码状态改变的同时,页面也刷新呢?
21 楼 lym6520 2010-01-15  
anywing 写道
楼主,我再问一下,我现在不用你后来提供的插件(因为我不太会使用$.post),我就用《jQuery 实现分页导航 v2.0(附demo)》该帖子提供的代码,我如何加入自己生成的链接,来进行页面跳转呢?
上帖中,点击页码只是调用函数使得出现了页码的动态变化的效果,但是并没有页面的翻页。

之前写的那个不是很好用的,改变页码状态只要传入当前页码就可以了,看下面js
function pageN(){
    var arr = new Array();
    for(var i = 0 ; i < pageN.arguments.length ; i++){
        arr[i] = pageN.arguments[i];
    }
    pagebar('pageN',arr,10,100,'showDiv');
}

var arr = new Array();
arr[0] = 1;
pageN(arr);

其中arr[0]就带表当前页码了。
20 楼 anywing 2010-01-14  
楼主,我再问一下,我现在不用你后来提供的插件(因为我不太会使用$.post),我就用《jQuery 实现分页导航 v2.0(附demo)》该帖子提供的代码,我如何加入自己生成的链接,来进行页面跳转呢?
上帖中,点击页码只是调用函数使得出现了页码的动态变化的效果,但是并没有页面的翻页。
19 楼 lym6520 2010-01-13  
http://lym6520.iteye.com/blog/540580
18 楼 lym6520 2010-01-13  
anywing 写道
比如:服务器返回的数据是什么它是json类型的吗?那我需要做一些什么配置?

这个就看你对擅长操作哪种数据类型了,要是我的话会选择json,很容易操作。
17 楼 anywing 2010-01-13  
比如:服务器返回的数据是什么它是json类型的吗?那我需要做一些什么配置?
16 楼 lym6520 2010-01-13  
到哪个地方卡壳了啊?
15 楼 anywing 2010-01-12  
还是没有搞定。。。。。
14 楼 lym6520 2010-01-09  
jQuery.post(url,parameters,function(data){

//data就是服务器返回的数据,在这里操作
},'json')
13 楼 anywing 2010-01-08  
我想通过jQuery.post(url,parameters,callback,'json')来做,可是callback函数应该怎么写呢?
12 楼 lym6520 2010-01-08  
anywing 写道
我只对查询的结果进行更新,请问我如何通过传递pageIndex到后台调出的数据

有两种方式:
一种是通过重新定义分页导航条的初始化数据,改变初始化参数currentPage的值,也就是整个页面刷新;还有一种就是通过onClickPage方法ajax调用,将返回的结果重新在前台展示,当然这需要通过脚本控制。
11 楼 anywing 2010-01-07  
我只对查询的结果进行更新,请问我如何通过传递pageIndex到后台调出的数据
10 楼 lym6520 2010-01-07  
在google app上弄的一个简单留言板应用了分页导航条:http://yz6520.appspot.com
你们可以参考下。
9 楼 lym6520 2010-01-07  
anywing 写道
嗯,我刚刚在另外一个帖子里看到了楼主的最新版本,就是我想知道如何通过更新form表单的隐藏字段来提交表单操作,或者我如何触发Action调用DAO层的分页结果。也就是我已经使用了楼主的插件,但是现在我如何通过点击链接,获得我所请求的页面的数据。

也是在下面这个方法中处理的,当然如果你是整个页面刷新的话,通过改变设置的初始化参数来初始化分页条:
 onClickPage : function(pageIndex){  
                 $.fn.setCurrentPage(this,pageIndex);  
                 //这里进行ajax异步数据处理  
                 //通过提交表单,或着使用location.href 
                 //在这里处理相应的内容更新
              }  
8 楼 anywing 2010-01-07  
嗯,我刚刚在另外一个帖子里看到了楼主的最新版本,就是我想知道如何通过更新form表单的隐藏字段来提交表单操作,或者我如何触发Action调用DAO层的分页结果。也就是我已经使用了楼主的插件,但是现在我如何通过点击链接,获得我所请求的页面的数据。
7 楼 lym6520 2010-01-07  
anywing 写道
还有,我在例子里面没看到onClickPage方法

这个是调用分页导航条插件的方法,你可以在我的例子中看到。
6 楼 anywing 2010-01-07  
还有,我在例子里面没看到onClickPage方法
5 楼 anywing 2010-01-07  
恩,我就是打算通过更新form表单的隐藏字段来提交表单操作,请问能否再讲的具体一些,谢谢

相关推荐

    JQuery zTree 2.0 一个非常好用的jQuery树插件

    **jQuery zTree 2.0:一款高效实用的jQuery树形插件** jQuery zTree是一款基于JavaScript库jQuery的优秀树形插件,尤其在2.0版本中,它提供了丰富的功能和良好的用户体验。zTree主要适用于网站后台管理、数据展示、...

    asp.net mvc2.0+前台Jquery+IbatisNet+Castle

    在ASP.NET MVC项目中,Jquery可以用来增强前端用户体验,比如通过AJAX实现无刷新页面更新,或者通过插件如DataTables实现表格分页和排序。 IbatisNet是一个轻量级的数据访问层框架,它是MyBatis的.NET版本。与ORM...

    mvc2.0DEMO+easyUI

    例如,你可以用EasyUI的表格组件展示从MVC控制器返回的数据,通过Ajax实现异步加载和分页。控制器处理数据请求,返回JSON格式的数据,而EasyUI的表格组件则自动解析并显示这些数据。此外,EasyUI的表单组件可以用于...

    jquery 插件 web2.0分格的分页脚本,可用于ajax无刷新分页

    总的来说,这个jQuery分页插件提供了一种简单而灵活的方式来实现Web2.0风格的分页功能,结合Ajax技术,使得在大数据量的页面中进行浏览变得更为便捷。通过自定义参数,开发者可以根据项目需求定制出符合设计风格的...

    MvcPager 1.5 for ASP.NET MVC 3 demo project (EN)

    支持使用jQuery实现Ajax分页,生成的Html代码更精简; 支持Ajax分页模式下,若客户端浏览器不支持或禁用Javascript功能时安全降级为普通分页 搜索引擎友好,无论是普通分页还是Ajax分页,搜索引擎都可以直接搜索到...

    net_MVC新闻发布系统demo(mvc2.0)

    9. **AJAX集成**:在.NET MVC中,可以方便地结合jQuery和其他JavaScript库实现页面的异步更新,提高用户体验。在新闻系统中,可能使用AJAX加载更多新闻或评论。 通过这个.NET MVC 2.0的新闻发布系统示例,新手可以...

    mvc3和mvc4的分页控件

    本文将详细介绍在MVC3和MVC4中实现分页的方法,并探讨两个提及的插件:MvcPager1.3Demo2.0_CN和MvcPager1.5Src3en。 1. **什么是ASP.NET MVC分页**: ASP.NET MVC(Model-View-Controller)是一个用于构建可维护和...

    Jquery开发UI模板

    这个压缩包文件“jQuery MiniUI V2_0 Demo”包含了 MiniUI 的 2.0 版本的演示示例,帮助开发者理解和学习如何使用 MiniUI 构建用户界面。 **MiniUI 主要特点:** 1. **轻量级**:MiniUI 依赖于 jQuery,体积小巧,...

    Spring2.5+Struts2.0+hibernate3.0+Dwr+jquery+displayTag

    自已写的一个demo 1 基于SSH,service采用 annotation注入减少配置 2 利用struts2 的LoginAction-validation.xml 3 在bean里把service包;暴露DWR,写了一个验证用户名的流程 4 采用jpa作为POJO,还是减少配置 5 加入...

    Asp.Net Mvc2 增删改查DEMO附下载

    这是一个jQuery分页插件,它可以与*** MVC完美结合,实现页面上的分页效果。 5. 控制器的作用:*** MVC的核心是M-V-C(Model-View-Controller)模式,控制器(Controller)扮演了处理用户请求和返回响应的角色。在...

    JQUERY THICKBOX弹出层插件

    这款插件基于jQuery库,兼容多种浏览器,包括Windows平台的Internet Explorer 6.0及更高版本、Firefox 2.0.0.6+、Opera 9.0+,以及Macintosh平台的Safari 2.0.4+、Firefox 2.0.0.6+和Opera 9.10+。尽管它声称对这些...

    loggrove:Loggrove是对本地、远程日志文件进行 分页阅读、实时阅读、关键词匹配、统计、监控、钉钉告警、Highcharts图表展示 的 Web 平台服务,并包含 用户认证、LDAP认证、操作审计 等基础服务

    Loggrove 是对本地、远程日志文件进行 分页阅读、实时阅读(websocket)、关键词匹配、统计、监控、钉钉告警、Highcharts趋势图展示 的 Web 平台服务,并包含 用户认证、LDAP认证、操作审计 等基础服务。 DEMO 地址...

    我记录 内容管理系统 CMS源码

    整个框架,除了jquery,没有依赖其他第三方类库; 2、绝不过度设计。简单、易学、易上手是这套框架对自己的定位。 3、从实战出发,提供了 cms/sns/forum 等大型系统的示例,经过了全面的实战检验;不像其他一些框架...

Global site tag (gtag.js) - Google Analytics