问答详情
源自:3-1 用Js的构造函数创建侧边栏对象

this.el.addEventListener 问题

sideBar.js:8 Uncaught TypeError: Cannot read property 'addEventListener' of null

提问者:言长寸短 2016-08-26 11:21

个回答

  • 言长寸短
    2016-09-05 14:29:56

    (function(){
    
      var SideBar=function(eId,closeId){
    
       this.state="opened";
    
       this.el=document.getElementById(eId||'sideBar');
    
      
    
       this.closeBar=document.getElementById(closeId||'closeBar');
    
       var self=this;
    
       this.el.addEventListener('click',function(event){
    
        if (event.target !== self.el){
    
          self.triggerSwitch();     
    
        } 
    
       });
    
      };
    
      SideBar.prototype.triggerSwitch=function(){
    
       if (this.state==="opened") {
    
        this.close();     
    
        
    
       }else{
    
        this.open();
    
        
    
       }
    
      };
    
      SideBar.prototype.close=function(){
    
       this.state="closed";
    
      };
    
      SideBar.prototype.open=function(){
    
       this.state=="opened";
    
      };
    
      
    
      var sidebar=new SideBar();
    
      
    
     })();

  • 写代码的阿木木
    2016-08-28 10:22:33

    你把所有的都给我,给我一部分我也没法调

  • 写代码的阿木木
    2016-08-27 00:18:18

    if (this.state==="opened") {this.close();}else{this.open();}};

    方法要加括号 

  • 言长寸短
    2016-08-26 16:30:27

    见图

  • 写代码的阿木木
    2016-08-26 15:51:58

    贴源码