jqPaginator分页(ajax用法和form表单提交用法)

一般使用方法

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <link rel="stylesheet" href="res/bootstrap.min.css"/>
</head>
<body style="padding:100px">
    <ul class="pagination" id="pagination"></ul>

<script src="res/jquery-1.7.2.min.js"></script>
<script src="res/jqPaginator.min.js"></script>
<script>
$("#pagination").jqPaginator({
    totalPages:20,      //总页数
    visiblePages: 5,    //显示多少页码
    currentPage: 1      //当前页码
})
</script>
</body>
</html>

效果图:

 

如果想换样式和文字,可以修改jqPaginator.min.js

first: '<li class="first"><a href="javascript:;">First</a></li>',
prev: '<li class="prev"><a href="javascript:;">Previous</a></li>',
next: '<li class="next"><a href="javascript:;">Next</a></li>',
last: '<li class="last"><a href="javascript:;">Last</a></li>',

比如修改为

first: '<li class="first"><a href="javascript:;">首页</a></li>',
prev: '<li class="prev"><a href="javascript:;"><<</a></li>',
next: '<li class="next"><a href="javascript:;">>></a></li>',
last: '<li class="last"><a href="javascript:;">末页</a></li>',

修改后效果图

Ajax请求

$("#pagination").jqPaginator({
    totalPages:20,      //总页数
    visiblePages: 5,    //显示多少页码
    currentPage: 1,     //当前页码
    onPageChange: function (num, type) {
        //num为当前点击的页码 
        if (type == "change") {
            $.ajax(……)
        }
    }
})

type一直为”change“  不知道为啥要这个参数。。。。。。

Form表单提交

在form中添加隐藏元素page,pageChange时page赋值为点击的页码数然后提交表单,这时页面刷新page出现在url中,为了同步操作,需要获取url中page的值,这里用的是GetQueryString函数 ,获取到page值然后赋值给隐藏元素page,设置currentPage为$("#page").val()

这里有一个问题,就是currentPage不能直接赋值为GetQueryString("page"),这个应该和代码的执行顺序有关系。。。。

下面贴出完整代码:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <link rel="stylesheet" href="res/bootstrap.min.css"/>
</head>
<body style="padding:100px">
<form id="form">
    <input type="hidden" name="page" id="page"/>
</form>
    <ul class="pagination" id="pagination"></ul>

<script src="res/jquery-1.7.2.min.js"></script>
<script src="res/jqPaginator.min.js"></script>
<script>
    $("#page").val(GetQueryString("page")||1);
    function GetQueryString(name) {
        var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
        var r = window.location.search.substr(1).match(reg);
        if(r!=null){
            var b = decodeURI(r[2]).replace(/+/g," ").replace(/%2B/g,"+").replace(/%22/g,'"').replace(/%27/g,"'").replace(/%2F/g,"/").replace(/%23/g,"#").replace(/%3D/g,"=").replace(/%26/g,"&").replace(/%40/g,"@").replace(/%3B/g,"").replace(/%3F/g,"?").replace(/%2C/g,",").replace(/%24/g,"$");
            return  b;
        }
        return null;
    }
$("#pagination").jqPaginator({
    totalPages:20,      //总页数
    visiblePages: 5,    //显示多少页码
    currentPage: parseInt($("#page").val()),     //当前页码
    onPageChange: function (num, type) {
        if (type == "change") {
            $("#page").val(num);
            $("#form").submit();
        }
    }
})
</script>
</body>
</html>

:replace的目的是为了替换特殊字符,在form表单中有输入框的情况下可以用上

原文地址:https://www.cnblogs.com/AnnieShen/p/7570157.html