<!DOCTYPE html> <html> <head> <title>分页</title> <link rel="stylesheet" type="text/css" href="./css/page.css"></style> <script type="text/javascript" src="./js/jquery.min.js"></script> <script type="text/javascript" src="./js/index.js"></script> </head> <body> <div class=""> <div class="container" id="container" style="min-400px;min-height: 600px;"> </div> </div> <script type="text/javascript"> $(document).ready(function(){ // 创建一个分页的实例对象,利用对象中的方法进行分页 var pageone = new PageInit('qA','../test3.json'); var pageInit = pageone.createPage(); $('#container').html(pageInit); pageone.init('../test3.json'); pageone.operator(); }) </script> </body> </html>
index.js文件内容 // 本例仅仅实现了页面跳转向后台传递数据,后台根据具体参数返回数据我们显示在页面上 function PageInit(className,url){ var publicVar={} ; var tempClassName = className; var tempUrl = url; var totalItem; publicVar.init = function(tempUrl){ var parInit = { 'page':1, 'pagesize':10 } this.reloadReplies(parInit); } publicVar.createPage = function(){ var html = ` <div class=${tempClassName}> <div class="data-area"></div> <div class="center"> <table class="pageinitial" > <tr> <td> <select name="pageItemNum" class ="rows" > <option value="10">10</option> <option value="15">15</option> <option value="25">25</option> <option value="50">50</option> </select> </td> <td class="division"> | </td> <td> <a href="javascript:void(0)" class="page-first"> </a> </td> <td> <a href="javascript:void(0)" class="page-prev"> </a> </td> <td class="division"> | </td> <td> page <input class="page" value="1" style="30px;display:inline-block;text-align:center" readonly/> </td> <td> of <span class="page-total"></span> </td> <td class="division"> | </td> <td> <a class="page-next" href="javascript:void(0)"> </a> </td> <td> <a href="javascript:void(0)" class="page-last"> </a> </td> </tr> </table> </div> </div>` return html; }; // 绑定标签的点击函数 publicVar.operator = function(tempUrl){ var _self = this; $('.'+tempClassName+' .page-first').click(function(e){ e.preventDefault(); pageParams = _self.curPage(tempClassName); if(pageParams.page==maxPage){ $('.'+tempClassName+' .page-next').removeClass('page-disable'); $('.'+tempClassName+' .page-last').removeClass('page-disable'); _self.aAbled('.'+tempClassName+' .page-next'); _self.aAbled('.'+tempClassName+' .page-last'); } if(pageParams.page>1) { pageParams.page = 1; $('.'+tempClassName+' .page').val(pageParams.page); $('.'+tempClassName+' .page-total').html(maxPage); $('.'+tempClassName+' .page-prev').addClass('page-disable'); $('.'+tempClassName+' .page-first').addClass('page-disable'); _self.aDisabled('.'+tempClassName+' .page-prev'); _self.aDisabled('.'+tempClassName+' .page-first'); _self.pagefresh(pageParams,tempUrl); } }); $('.'+tempClassName+' .page-prev').click(function(e){ e.preventDefault(); pageParams = _self.curPage(tempClassName); maxPage = Math.ceil(totalItem/pageParams.pagesize); if(pageParams.page==maxPage){ $('.'+tempClassName+' .page-next').removeClass('page-disable'); $('.'+tempClassName+' .page-last').removeClass('page-disable'); _self.aAbled('.'+tempClassName+' .page-next'); _self.aAbled('.'+tempClassName+' .page-last'); } if(pageParams.page>1){ pageParams.page = pageParams.page-1; if(pageParams.page==1){ $('.'+tempClassName+' .page-prev').addClass('page-disable'); $('.'+tempClassName+' .page-first').addClass('page-disable'); _self.aDisabled('.'+tempClassName+' .page-prev'); _self.aDisabled('.'+tempClassName+' .page-first'); } $('.'+tempClassName+' .page').val(pageParams.page); $('.'+tempClassName+' .page-total').html(maxPage); _self.pagefresh(pageParams,tempUrl); } }); $('.'+tempClassName+' .page-next').click(function(e){ e.preventDefault(); pageParams = _self.curPage(tempClassName); maxPage = Math.ceil(totalItem/pageParams.pagesize); if(pageParams.page==1){ $('.'+tempClassName+' .page-prev').removeClass('page-disable'); $('.'+tempClassName+' .page-first').removeClass('page-disable'); _self.aAbled('.'+tempClassName+' .page-prev'); _self.aAbled('.'+tempClassName+' .page-first'); } if(pageParams.page<maxPage){ pageParams.page = pageParams.page-1+2; if(pageParams.page==maxPage){ $('.'+tempClassName+' .page-next').addClass('page-disable'); $('.'+tempClassName+' .page-last').addClass('page-disable'); _self.aDisabled('.'+tempClassName+' .page-next'); _self.aDisabled('.'+tempClassName+' .page-last'); } $('.'+tempClassName+' .page').val(pageParams.page); $('.'+tempClassName+' .page-total').html(maxPage); _self.pagefresh(pageParams,tempUrl); } }); $('.'+tempClassName+' .page-last').click(function(e){ e.preventDefault(); pageParams = _self.curPage(tempClassName); maxPage = Math.ceil(totalItem/pageParams.pagesize); if(pageParams.page==1){ $('.'+tempClassName+' .page-prev').removeClass('page-disable'); $('.'+tempClassName+' .page-first').removeClass('page-disable'); _self.aAbled('.'+tempClassName+' .page-prev'); _self.aAbled('.'+tempClassName+' .page-first'); } if(pageParams.page<maxPage){ maxPage = Math.ceil(totalItem/pageParams.pagesize); pageParams.page = maxPage; $('.'+tempClassName+' .page').val(maxPage); $('.'+tempClassName+' .page-total').html(maxPage); $('.'+tempClassName+' .page-next').addClass('page-disable'); $('.'+tempClassName+' .page-last').addClass('page-disable'); _self.aDisabled('.'+tempClassName+' .page-next'); _self.aDisabled('.'+tempClassName+' .page-last'); _self.pagefresh(pageParams,tempUrl); } }); $('.'+tempClassName+' .rows').change(function(e){ pageParams = _self.curPage(tempClassName); maxPage = Math.ceil(totalItem/pageParams.pagesize); $('.'+tempClassName+' .page-total').html(maxPage); $('.'+tempClassName+' .page').val('1'); pageParams.page = $('.'+tempClassName+' .page').val(); $('.'+tempClassName+' .page-prev').addClass('page-disable'); $('.'+tempClassName+' .page-first').addClass('page-disable'); _self.aDisabled('.'+tempClassName+' .page-prev'); _self.aDisabled('.'+tempClassName+' .page-first'); if(maxPage==1){ $('.'+tempClassName+' .page-next').addClass('page-disable'); $('.'+tempClassName+' .page-last').addClass('page-disable'); _self.aDisabled('.'+tempClassName+' .page-next'); _self.aDisabled('.'+tempClassName+' .page-last'); }else{ $('.'+tempClassName+' .page-next').removeClass('page-disable'); $('.'+tempClassName+' .page-last').removeClass('page-disable'); _self.aAbled('.'+tempClassName+' .page-next'); _self.aAbled('.'+tempClassName+' .page-last'); } _self.pagefresh(pageParams,tempUrl); }); }; // 设置标签是否可以进行点击 publicVar.aDisabled = function(tempClassName) { $(tempClassName).attr('disabled', true); $(tempClassName).css('pointer-events', 'none'); }; publicVar.aAbled = function(tempClassName) { $(tempClassName).attr('disabled', false); $(tempClassName).css('pointer-events', 'auto'); }; // 获取当前页面信息页码页数和itemID publicVar.curPage = function (tempClassName){ var rtn ={}; rtn.pagesize = $('.'+tempClassName+' .rows').val(); rtn.page = $('.'+tempClassName+' .page').val(); return rtn; }; // 得到参数后刷新,可以根据不同的tempClassName来局部刷新不同的列表 publicVar.pagefresh = function (params,tempUrl){ this.reloadReplies(params,tempUrl); }; publicVar.reloadReplies = function(pars){ _self = this; var htmlItem =''; var lenItem = ''; $.ajax({ url:tempUrl, params:pars, async: false, success:function(data){ totalItem = data.total; if(totalItem==0){ maxPageItem = 1; }else{ maxPageItem = Math.ceil(totalItem/pars.pagesize); } if(pars.page==1){ $('.'+tempClassName+' .page-prev').addClass('page-disable'); $('.'+tempClassName+' .page-first').addClass('page-disable'); _self.aDisabled('.'+tempClassName+' .page-prev'); _self.aDisabled('.'+tempClassName+' .page-first'); } if(pars.page==maxPageItem){ $('.'+tempClassName+' .page-next').addClass('page-disable'); $('.'+tempClassName+' .page-last').addClass('page-disable'); _self.aDisabled('.'+tempClassName+' .page-next'); _self.aDisabled('.'+tempClassName+' .page-last'); }else{ $('.'+tempClassName+' .page-next').removeClass('page-disable'); $('.'+tempClassName+' .page-last').removeClass('page-disable'); _self.aAbled('.'+tempClassName+' .page-next'); _self.aAbled('.'+tempClassName+' .page-last'); } $('.'+tempClassName+' .page-total').html(maxPageItem); $('.'+tempClassName+' .page').val(pars.page); lenItem = data.List.length; if(lenItem>0){ // data.rows.postReplys = convertTime(data.rows.postReplys); htmlItem = _self.fn(data.List); } $('.'+tempClassName+' .data-area').html(htmlItem); } }); }; // publicVar.createListItem = function(){ // } publicVar.fn = function(item){ var html=''; for(var i=0;i<item.length;i++){ html+= ' <div class="reply-item"> <div class="user-portrait"> <div class="portrait"><img src='+item[i].headIcon+'></div> </div> <div class="reply-detail"> <div class="reply-user">'+item[i].Name+'</div> <div class="reply-content">'+item[i].reply_content+'</div> <div class="reply-last"> <div class="reply-time">'+item[i].reply_time+'</div> <div class="reply-delete"><div style="color: #0011ff;50px;cursor:pointer" onclick="openDeleteReplyDialog()">delete</div></div> </div> </div> </div> ' } return html; } return publicVar; }