this.el.addEventListener 问题

来源:3-1 用Js的构造函数创建侧边栏对象

言长寸短

2016-08-26 11:21

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

写回答 关注

5回答

  • 言长寸短
    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();
    
      
    
     })();

    共 1 条回复 >

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

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

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

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

    方法要加括号 

    言长寸短

    问题依旧存在

    2016-08-28 09:52:37

    共 2 条回复 >

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

    见图

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

    贴源码

    言长寸短

    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-26 16:35:08

    共 2 条回复 >

侧边栏信息展示效果

顶级大牛分享开发经验,学会实现侧边栏内容效果展示,让你迅速进阶

33647 学习 · 96 问题

查看课程

相似问题