xhliang

View Post

jquery 页面分页的实现

 

<!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-width: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="width: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;width:50px;cursor:pointer" onclick="openDeleteReplyDialog()">delete</div></div>\
                          </div>\
                      </div>\
                  </div>\
              \'
            }
            return html;
        }
        return publicVar;
    }

  
 
 
 
 
 

分类:

技术点:

相关文章: