<!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、代码中的addEventListener都被错误的写成了addEventListerner,多了个r;
2、你的script标签写在head标签里,应该在外面包裹上window.onload=function(){这里是你上面的代码}。
或者你可以将script标签放在body结束标签之前,即</body>上方。因为页面是自上而下进行加载的,页面自身的HTML元素尚未加载(也就是btn按钮尚不存在),你就对它添加事件,浏览器找不到相应节点,自然会出错。