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表单中有输入框的情况下可以用上