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" οnclick="openDeleteReplyDialog()">delete</div></div>\
                          </div>\
                      </div>\
                  </div>\
              '
            }
            return html;
        }
        return publicVar;
    }

  
 
 
 
 
 

转载于:https://www.cnblogs.com/xhliang/p/7852272.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用jQuery实现分页功能,需要先获取到要分页的数据,然后根据每页显示的数量和总数据量计算出需要分成多少页。然后在页面上生成相应的分页导航,当用户点击不同的分页按钮时,再用jQuery动态地显示相应的数据。 以下是一个简单的示例代码: HTML部分: ``` <div id="data"></div> <div id="pagination"></div> ``` JS部分: ``` // 模拟数据 var data = []; for (var i = 1; i <= 50; i++) { data.push("数据" + i); } // 每页显示的数量 var pageSize = 10; // 总页数 var pageCount = Math.ceil(data.length / pageSize); // 显示数据的函数 function showData(pageIndex) { var html = ""; for (var i = (pageIndex - 1) * pageSize; i < pageIndex * pageSize && i < data.length; i++) { html += "<p>" + data[i] + "</p>"; } $("#data").html(html); } // 生成分页导航的函数 function generatePagination() { var html = ""; for (var i = 1; i <= pageCount; i++) { html += "<span data-page='" + i + "'>" + i + "</span>"; } $("#pagination").html(html); } // 默认显示第一页的数据 showData(1); // 生成分页导航 generatePagination(); // 点击分页导航时显示相应的数据 $("#pagination").on("click", "span", function() { var pageIndex = parseInt($(this).data("page")); showData(pageIndex); }); ``` 在上面的示例代码中,我们首先定义了一个模拟数据,然后根据每页显示的数量和总数据量计算出总页数。接着定义了两个函数,一个用于显示数据,一个用于生成分页导航。然后在页面加载完成后,先显示第一页的数据,再生成分页导航。最后监听分页导航的点击事件,在点击时根据点击的页码显示相应的数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值