• 面向对象版js分页


    基于前一个js分页,我将代码改成一个面向对象版的js分页,代码如下

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <style type="text/css">
    a{
        margin: 5px;
    }
    </style>
    <title>分页</title>    
    <script type="text/javascript">
    window.onload=function(){
        new page(
            {id:'div1',
            nowNum:8,
            allNum:10,
            callback:function(now,all){
                alert('当前页:'+now+','+'总共'+all+'')
            }
            }
        )
    }
    
    function page(json){
        this.json=json;
    
        if(!this.json.id){
            return false
        }
        this.obj=null;
        this.nowNum=null;
        this.allNum=null;
        this.callback=null;
    
        var _this=this;
        this.obj=document.getElementById(this.json.id);
        this.nowNum=this.json.nowNum||1;
        this.allNum=this.json.allNum||5;
        this.callback=this.json.callback||function(){};
    
        if(this.nowNum >3 && this.allNum >5){
            var oA=null;
    
            this.oA=document.createElement('a');
            this.oA.href="#"+1;
            this.oA.innerHTML="首页";
            this.obj.appendChild(this.oA)
        }
        if(this.nowNum>1){
            var oA=null;
    
            this.oA=document.createElement('a');
            this.oA.href="#"+(this.nowNum-1);
            this.oA.innerHTML="上一页";
            this.obj.appendChild(this.oA)
        }
    
    
    
        if(this.allNum<=5){
            for(var i=0;i<this.allNum;i++){
                var oA=null;
                this.oA=document.createElement('a');
    
                this.oA.href='#'+(i+1);
    
                if(this.nowNum==i){
                    this.oA.innerHTML=(i+1);
                }else{
                    this.oA.innerHTML='['+ (i+1) +']';
                }
                this.obj.appendChild(this.oA);
    
            }
        }else{
    
            for(var i=1;i<=5;i++){
                var oA=null;
                this.oA=document.createElement('a');
    
                if(this.nowNum==1||this.nowNum==2){
                    this.oA.href='#'+i;
                    this.oA.innerHTML='['+i+']';
    
                    if(this.nowNum==i){
                        this.oA.innerHTML=i
                    }
                }else if((this.allNum - this.nowNum) == 0||(this.allNum - this.nowNum == 1)){
            
                    this.oA.href='#'+(this.allNum-5+i);
                    if(this.allNum - this.nowNum==0 && i==5){
                        this.oA.innerHTML=(this.allNum-5+i);
                    }else if(this.allNum - this.nowNum==1 && i==4){
                        this.oA.innerHTML=(this.allNum-5+i);
                    }else{
                        this.oA.innerHTML='['+(this.allNum-5+i)+']';
                    }
    
            
                }else{
                    this.oA.href = '#' + (this.nowNum - 3 + i);
    
                    if(i==3){
                        this.oA.innerHTML=(this.nowNum-3+i);
                    }else{
                        this.oA.innerHTML='['+(this.nowNum-3+i)+']';
                    }
    
                }
                this.obj.appendChild(this.oA);
    
            }
        }
    
        if((this.allNum - this.nowNum) > 0){
            var oA=null;
            this.oA=document.createElement('a');
            this.oA.href='#'+(this.nowNum+1);
            this.oA.innerHTML = '下一页';    
            this.obj.appendChild(this.oA);
        }
        if((this.allNum - this.nowNum)>2){
            var oA=null;
            this.oA=document.createElement('a');
            this.oA.href='#'+this.allNum;
            this.oA.innerHTML = '尾页'    
            this.obj.appendChild(this.oA);
        }
        this.callback(this.nowNum,this.allNum);
    
        
    
        var aA=null;
    
        this.aA=this.obj.getElementsByTagName('a');
        for(var i=0;i<this.aA.length;i++){
    
            var _this=this;
    
            this.aA[i].onclick=function(){
                _this.change(this);
            };
            
        }
    }
    page.prototype.change=function(btn){
    
                var nowNum=null;
                
    
                this.nowNum = parseInt(btn.getAttribute('href').substring(1));
                
                this.obj.innerHTML='';
    
                new page(
                    {
                        id:    this.json.id,
                        nowNum:this.nowNum,
                        allNum:this.allNum
                    }
                )
    }
    </script>
    </head>
    <body>
    <div id="div1">
        <!-- <a href="#1">1</a>
        <a href="#1">2</a>
        <a href="#1">3</a>
        <a href="#1">4</a>
        <a href="#1">5</a> -->
    </div>
    </body>
    </html>
  • 相关阅读:
    Building Java Projects with Gradle
    Vert.x简介
    Spring及Spring Boot 国内快速开发框架
    dip vs di vs ioc
    Tools (StExBar vs Cmder)which can switch to command line window on context menu in windows OS
    SSO的定义、原理、组件及应用
    ModSecurity is an open source, cross-platform web application firewall (WAF) module.
    TDD中测试替身学习总结
    Spring事务银行转账示例
    台式机(华硕主板)前面板音频接口(耳机和麦克风)均无声的解决办法
  • 原文地址:https://www.cnblogs.com/zpfind/p/5755798.html
Copyright © 2020-2023  润新知