zoukankan      html  css  js  c++  java
  • 自制jq分页插件

    由于第一次写jq插件,中间有借鉴别人的代码。

    
     (function(){
        var ms = {
    
            fillHtml: function(obj, option) {
                obj.empty();
                var totalPage = option.pageCount,
                    pageHtml = "",
                    dotHtml = "<li><a>...</a></li>",
                    tempHtml = "";
    
                if (option.currentPage > 5) {
                    tempHtml = "<li><a class=page-num>1</a></li><li><a class=page-num>2</a></li><li><a>...</a></li>";
    
                    for(var i = option.currentPage - 2 ; i <= (option.currentPage + 2 > totalPage ? totalPage : option.currentPage + 2); i++) {
                        var temp = "<li><a class=page-num>" +i+ "</a></li>";
                        if (option.currentPage === i ) {
                            temp = '<li class="current-page"><a href class=page-num>'+ i +'</a></li>';
                        }
    
                        if (option.currentPage >= totalPage - 2) {
                            dotHtml = "";
                        }
                        pageHtml += temp;
                    };
    
                }else {
    
                    for(var i = 1; i <= ( 6 > totalPage ? totalPage : 6); i++) {
                        var temp = "<li><a class=page-num>" +i+ "</a></li>";
                        if (option.currentPage === i ) {                //添加选中蓝色背景
                            temp = '<li class="current-page"><a  class=page-num>'+ i +'</a></li>';
                        };
    
                        if (option.currentPage >= totalPage - 2) {
                            dotHtml = "";
                        }
                        pageHtml += temp;
                    };
                }
                
                pageHtml = '<ul>'+
                            '<li class="prev-page"><a>上一页</a></li>' + tempHtml +
                            pageHtml + dotHtml +
                            '<li class="next-page"><a>下一页</a></li></ul>';
                
                obj.append(pageHtml);
            },
    
            bindEvent: function(obj, option) {
    
                $(obj).on("click",".page-num",function(){
                    if ($(this).parent("li") && $(this).parent("li").hasClass('current-page')) {
                        return;
                    }
                    var current = Number( $(this).text() );                //点击的页数
                    ms.fillHtml(obj, {"currentPage": current, "pageCount": option.pageCount});
                    option.backFunction();
                });
    
                $(obj).on("click",".next-page",function(){
                    var current = Number( $(".current-page a").text() );                //下一页
                    if (current === option.pageCount){
                        return;
                    }
                    ms.fillHtml(obj, {"currentPage": current + 1, "pageCount": option.pageCount});
                    option.backFunction();
                });
    
                $(obj).on("click",".prev-page",function(){
                    var current = Number( $(".current-page a").text() );                //上一页
                    if (current === 1){
                        return;
                    }
                    ms.fillHtml(obj, {"currentPage": current-1, "pageCount": option.pageCount});
                    option.backFunction();
                });
            },
            
            init: function(obj, option){
    
                return (function(){
                    ms.fillHtml(obj, option);
                    ms.bindEvent(obj, option);
                })();
            }
        };
    
    
        $.fn.creatPage = function(option) {
    
            var initOption = {
                    pageCount: 10,
                    currentPage: 1,
                    backFunction: function(){}
            };
            option.pageCount = Number(option.pageCount);
            option.currentPage = Number(option.currentPage);
            
            var option = $.extend(initOption, option);
            
            ms.init(this, option);
        }
    })()
    

    HTML

    <div class="mod-page-cont" id="pageCont">
                           
    </div>

    用法

    $("#pageCont").creatPage({
            pageCount: 18,            //总页数
            currentPage: 1,            //当前选中页
            backFunction: function(){    //回调函数
                
            }
        });
  • 相关阅读:
    [Tutorial] The find command used in linux terminal ...
    Python: An example of plotting bar charts using python
    [Installation] Install Matlab2016b on Ubuntu 14.04
    [Debug] Fixed the catkin_make broken problem after intalling newer Python with Anaconda
    [Installation] My Workbench under construction
    [Installation] Install Python 3.5.2 from source
    实操 | Getting started with Self-Driving Car : Prepare
    Python: A python tools: iPython Notebook
    路线图 | Getting started with Tensorflow
    实操 | Building a ROS simulation platform for Deep Reinforcement Learning research ...
  • 原文地址:https://www.cnblogs.com/10manongit/p/12922102.html
Copyright © 2011-2022 走看看