簡單ajax 分頁

簡單分頁:
效果圖:
圖片描述
思路:javascript

數據渲染=》數據遍歷(每頁顯示已規定好的條數).bindList()和執行分頁渲染.initPaginator()
點擊分頁和下一頁的時候,從新請求數據渲染,對應的數據從新遍歷。css

代碼實現:html

html:java

<!doctype html>
<html style='' lang="en">
<head>
    <title>分頁測試</title>
    <meta charset="utf-8"/>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="viewport" content="width=device-width,user-scalable=no,initial-scale=1.0"/>
    <script src="https://cdn.bootcss.com/jquery/2.1.0/jquery.js"></script>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"
          integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"/>
    <style>
        * {margin: 0;padding: 0;}
        .list li{display: block;}
        .list li img{display: block;width:100px;}
    </style>

</head>
<body>
<div class="list">
    <ul id="listContent">
        <li></li>
    </ul>
</div>
<div id="pagination" style="display: none">
    <ul class="pagination"></ul>
</div>
</body>
</html>

js:jquery

<script type="text/javascript">
    var List = {
        contentId: "listContent", //渲染列表id
        pageId: "pagination",  //渲染分頁id
        pageIndex: 1, //第幾頁開始渲染
        pageSize: 6,//每頁渲染多少條數據
        pageSum:0,//共多少條數據
        refreshId: null
    };
    //data.count爲總的數據條數,即共多少條數據
    List.loadList = function (pageIndex) {
        var ajaxRequest = function () {
            $.ajax({
                url: "http://123.56.196.192:2000/syxa/news-consult/2/0/1000000",
                type: "GET",
                // data: data,
                error: function () {
                    // console.log(error);
                },
                success: function (data) {
                    console.log(data);
                    console.log(data.data.length);
                    if (data.count == 0) {
                        console.log('當前沒有數據記錄');
                    }
                    else {
                        if(pageIndex == 1){
                            List.initPaginator(data.count, data.data);
                            $('#' + List.pageId).show();
                            $('.pagination li[data-page="1"]').addClass('active');
                            $('.pagination li.page-first').removeClass('active').addClass('disabled');
                        }
                        List.bindList(pageIndex,data.count,data.data);
                    }
                }
            });
        }
        ajaxRequest();
    };

    //數據遍歷
    List.bindList = function (pageIndex,count,data) { 
        var start = (pageIndex - 1) * List.pageSize; // 數據開始點
        var content = '';
        for (var index = start; index < pageIndex*List.pageSize && index < data.length; index++) { //遍歷第幾頁內容,pageIndex也頁面順序
            console.log(data[index]);
            content += List.getListItem(data[index]);
        }
        $('#' + List.contentId).html('');
        $('#' + List.contentId).append(content);
    };

    List.getListItem = function (item) {
        var content = '';
        content += ' <li>';
        content += ' <a href="javascript:;"><img src="' + item.top_img + '" alt="' + item.title + '" /></a>';
        content += ' <h4>' + item.title + '</h4>';
        content += ' </li>';
        return content;
    };
    //分頁
    List.initPaginator = function (count, data) {
        var pageSize = List.pageSize;
        var pageTotal = Math.ceil(count / pageSize);
        var pageIndex = List.pageIndex;
        List.pageSum = pageTotal;
        console.log(pageTotal);
        var html = "";
        for (var i = pageIndex; i <= pageTotal; i++) {
            html += '<li class="page" data-page="' + i + '"><a href="javascript:;">' + i + '</a></li>';
        }
        html = '<li data-page="1" class="page-first"><a href="javascript:;">首頁</a></li>'
            + '<li data-page="" class="page-prev disabled"><a href="javascript:;" >上一頁</a></li>'
            + html
            + '<li data-page="2" class="page-next"><a href="javascript:;">下一頁</a></li>'
            + '<li data-page="' + pageTotal + '" class="page-last"><a href="javascript:;">末頁</a></li>';
        $('#' + List.pageId).find('ul').html(html);
    };

    //點擊頁碼刷新跳數據
    $('#' + List.pageId).on('click','li',function (e) {
        var pageIndex=parseInt($(this).attr('data-page'));
        var activeIndex=parseInt($('.pagination li.active').attr('data-page'));//當前active狀態頁碼
        $('.pagination li').removeClass('active');
        if($(this).hasClass('page-prev')) {
            List.loadList(activeIndex-1);
            var cur=activeIndex-1;
            $('.page-next,.page-last').removeClass('disabled');
            $('.pagination li.page[data-page=' + cur + ']').addClass('active');
            if(cur == 1){
                $('.page-prev,.page-first').addClass('disabled');
                $('.page-prev').attr('data-page','');
            }else{
                $('.page-prev').attr('data-page',activeIndex-2);
                $('.page-next').attr('data-page',activeIndex);
            }

        }else if($(this).hasClass('page-next')){
            List.loadList(activeIndex+1);
            var cur=activeIndex+1;
            $('.page-prev,.page-first').removeClass('disabled');
            $('.pagination li.page[data-page=' + cur + ']').addClass('active');
            if(cur == List.pageSum){
                $('.page-next,.page-last').addClass('disabled');
                $('.page-next').attr('data-page','');
            }else{
                $('.page-prev').attr('data-page',activeIndex);
                $('.page-next').attr('data-page',activeIndex+2);
            }

        }else if((!$(this).hasClass('page-prev')) &&(!$(this).hasClass('page-next'))){
            $(this).addClass('active');
            List.loadList($(this).attr('data-page'));
        }
        if(!($(this).hasClass('page-first')) && !($(this).hasClass('page-prev'))&& !($(this).hasClass('page-last')) && !($(this).hasClass('page-next'))){
            if(pageIndex == 1){
                $('.page-prev,.page-first').addClass('disabled');
                $('.page-next,.page-last').removeClass('disabled');
                $('.page-next').attr('data-page','2');
            }else if(pageIndex == List.pageSum){
                $('.page-prev,.page-first').removeClass('disabled');
                $('.page-next,.page-last').addClass('disabled');
                $('.page-prev').attr('data-page',List.pageSum-1);
                $('.page-next').attr('data-page','');
            }else{
                $('.page-prev,.page-first').removeClass('disabled');
                $('.page-next,.page-last').removeClass('disabled');
                $('.page-prev').attr('data-page',pageIndex-1);
                $('.page-next').attr('data-page',pageIndex+1);
            }
        }
    });
    //頁面初始化
    $(function () {
        List.loadList(List.pageIndex);
    });

</script>
相關文章
相關標籤/搜索