単純ajaxページング


簡単なページング:効果図:構想:
データレンダリング=』データ遍歴(各ページに所定の本数が表示される).bindList()とページングレンダリングを実行する.InitPaginator()改ページと次ページをクリックすると、データレンダリングを再要求し、対応するデータを再遍歴します.
コード実装:
html:



        
    
    
    
    
    
    




js:

    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);
    });