看完這一節,自己寫了一個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>
?? 求大神幫解答下! 最近寫一些類似有參數的函數,大部分都會彈出這個錯誤,實在是想不通, 求解答下,謝謝了
2015-12-24
主要錯誤有兩處:
1、代碼中的addEventListener都被錯誤的寫成了addEventListerner,多了個r;
2、你的script標簽寫在head標簽里,應該在外面包裹上window.onload=function(){這里是你上面的代碼}。
????或者你可以將script標簽放在body結束標簽之前,即</body>上方。因為頁面是自上而下進行加載的,頁面自身的HTML元素尚未加載(也就是btn按鈕尚不存在),你就對它添加事件,瀏覽器找不到相應節點,自然會出錯。