为了账号安全,请及时绑定邮箱和手机立即绑定

看完这一节,自己写了一个DOM二级事件函数,但老是报错 :obj is null !

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script type="text/javascript">
        
        var btn = document.getElementById('btn');
        

        function show(){
            alert('事件监听');
        }
 
        var eventUntil = {
            //添加事件
            Add:function(obj,type,Event){
                if(obj.addEventListerner){     //兼容 谷歌,火狐
                    obj.addEventListerner(type,Event,false);  
                }
                else if(obj.attachEvent){    //兼容IE,Opera
                    obj.attachEvent('on'+type,Event);
                }
                else{
                    obj['on'+type] = Event;
                }
            },
            //删除事件
            Remove:function(obj,type,Event){
                if(obj.removeEventListerner){     //兼容 谷歌,火狐
                    obj.removeEventListerner(type,Event,false);  
                }
                else if(obj.detachEvent){    //兼容IE,Opera
                    obj.detachEvent('on'+type,Event);
                }
                else{
                    obj['on'+type] = null;
                }
            }
            
        }
        eventUntil.Add(btn,'click',show)
    </script>
</head>
<body>
    <input type="button" value="btn" id="btn"></input>
</body>
</html>

   求大神帮解答下! 最近写一些类似有参数的函数,大部分都会弹出这个错误,实在是想不通, 求解答下,谢谢了

正在回答

1 回答

主要错误有两处:

1、代码中的addEventListener都被错误的写成了addEventListerner,多了个r;

2、你的script标签写在head标签里,应该在外面包裹上window.onload=function(){这里是你上面的代码}。

    或者你可以将script标签放在body结束标签之前,即</body>上方。因为页面是自上而下进行加载的,页面自身的HTML元素尚未加载(也就是btn按钮尚不存在),你就对它添加事件,浏览器找不到相应节点,自然会出错。

1 回复 有任何疑惑可以回复我~
#1

慕码人0911192 提问者

非常感谢!困扰好几天了,终于知道哪错了
2015-12-24 回复 有任何疑惑可以回复我~
#2

慕码人0911192 提问者

非常感谢!非常感谢!非常感谢! 重要的事情说三遍。。。
2015-12-24 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

看完这一节,自己写了一个DOM二级事件函数,但老是报错 :obj is null !

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信