Jquey+bootstrap打造简单的分页组件

博主最近都在写前端,总监来了一个将数据分页显示的需求,我想了想,反正这东西后面也要用到,不如把它弄成一个组件,封装起来,那以后岂不是美滋滋??

好了,废话不多说,直接上代码了….

html代码:
(其实HTML部分的代码平平无奇,只是将bootstrap和jquery引进来…..)

<body>
        <div id="page">
            <!--在这里放一个page的盒子,里面的内容由js添加-->
        </div>
    </body>

css代码:

#page{
    margin-top: 100px;
}
#page .curr-page{
        background-color:#009d8e;
        color:white;
}
#page .page-btn:hover , #page .prev:hover, #page .next:hover{
        background-color:#009d8e;
        color:white;
}

下面就是我们的重头戏–js代码:


//定义全局对象page,对象中有两个属性,一个当前页码数,一个总页数
var page = {pageno:1,totalPage:0}

$(function(){
    //这里假设由异步返回了信息,然后我们计算出了页数
    page.totalPage = 5; //假设是5页

    //添加按钮
    addButtons(page.totalPage);
    //禁用"上一页"按钮,因为默认是第一页,第一页没有上一页
    isDisabled(page.pageno,page.totalPage);

    //绑定“上一页”按钮的点击事件
    $(document).on("click","#page .prev",function(){
        page.pageno =  parseInt(page.pageno) - 1 ;
        console.info(page.pageno)
        $("#page .page-btn").removeClass("curr-page").eq(page.pageno-1 ).addClass("curr-page");
        isDisabled(page.pageno,page.totalPage);
    })

    //绑定“下一页”按钮点击事件
    $(document).on("click","#page .next",function(){
        page.pageno =  parseInt(page.pageno) + 1 ;
        console.info(page.pageno);
        $("#page .page-btn").removeClass("curr-page").eq(page.pageno-1 ).addClass("curr-page");
        isDisabled(page.pageno,page.totalPage);
    })

    //绑定“页码”按钮的点击时间
    $(document).on("click",".page-btn",function(){
        $this = $(this);
        page.pageno = $this.text();
        $("#page .page-btn").removeClass("curr-page").eq(page.pageno-1 ).addClass("curr-page");
        isDisabled(page.pageno,page.totalPage);
    })
})

//添加分页插件,根据总页数来添加按钮
function addButtons(totalPage){
        var _html = "<center><button class='btn btn-default prev' ><<上一页</button> ";
        for(var i = 1 ; i <= totalPage ; i++){
                if( i == 1){
                   _html += "<button class='btn btn-default page-btn curr-page'>"+ i +"</button> ";
                 }else{
             _html += "<button class='btn btn-default page-btn'>"+ i +"</button> ";
              }
          }
        _html += " <button class='btn btn-default next'>下一页>></button></center>";
        $("#page").html(_html);
}

//分页按钮迭代(最要是对"上一页"和”下一页“是否禁用的判断)
function  isDisabled(pagenum,totalpage){
            if(totalpage ==0 || totalpage ==1){
                   $("#page .prev").attr("disabled",true);
                   $("#page .next").attr("disabled",true);
            }else if(pagenum ==1){
                   $("#page .prev").attr("disabled",true);
                   $("#page .next").removeAttr("disabled");
            }else if(pagenum == totalpage){
                   $("#page .next").attr("disabled",true);
                   $("#page .prev").removeAttr("disabled");
            }else{
                   $("#page .next").removeAttr("disabled");
                   $("#page .prev").removeAttr("disabled");
            }
}

效果:
分页

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值