看完這一節(jié),自己寫了一個(gè)DOM二級(jí)事件函數(shù),但老是報(bào)錯(cuò) :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('事件監(jiān)聽');
?? ???? }
?
?? ??? ?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>
?? 求大神幫解答下! 最近寫一些類似有參數(shù)的函數(shù),大部分都會(huì)彈出這個(gè)錯(cuò)誤,實(shí)在是想不通, 求解答下,謝謝了
2015-12-24
主要錯(cuò)誤有兩處:
1、代碼中的addEventListener都被錯(cuò)誤的寫成了addEventListerner,多了個(gè)r;
2、你的script標(biāo)簽寫在head標(biāo)簽里,應(yīng)該在外面包裹上window.onload=function(){這里是你上面的代碼}。
????或者你可以將script標(biāo)簽放在body結(jié)束標(biāo)簽之前,即</body>上方。因?yàn)轫撁媸亲陨隙逻M(jìn)行加載的,頁面自身的HTML元素尚未加載(也就是btn按鈕尚不存在),你就對(duì)它添加事件,瀏覽器找不到相應(yīng)節(jié)點(diǎn),自然會(huì)出錯(cuò)。