老师我想尝试用一下兼容性代码,为什么会报错?
来源:2-17 Event对象跨浏览器兼容性写法
qq_慕运维6460539
2020-07-28 13:41:10
报错信息:
Uncaught TypeError: Cannot read property 'addEventListener' of undefined
at Object.addHandle
js代码:
var eventComp = {
addHandle: function(element,type,handler){
if (element.addEventListener){
element.addEventListener(type,handler,false);
}else if(element.attachEvent){
element.attachEvent("on"+type,handler);;
}else{
element["on"+type]=null;
}
},
removeHandle: function(element,type,handler){
if (element.removeEventListener){
element.removeEventListener(type,handler,false);
}else if(element.detachEvent){
element.detachEvent("on"+type,handler);;
}else{
element["on"+type]=null;
}
},
getTarget: function(event){
return event.targat || event.srcElement;
},
preventDefault: function(event){
if (event.preventDefault) {
event.preventDefault();
}else{
event.returnValue = false;
}
},
stopPropagation: function(event){
if (event.stopPropagation) {
event.stopPropagation();
}else{
event.cancelBubble = true;
}
}
};
var ul1=document.getElementsByTagName('ul')[0];
var fun = function(event){
alert(getTarget(event));
};
eventComp.addHandle(ul1,'click',fun);
HTML代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
<script src="eventComp.js"></script>
</head>
<body>
<ul>
<li id='1'>111</li>
<li id='2'>222</li>
<li id='3'>333</li>
<li id='4'>444</li>
<li id='5'>555</li>
<li id='6'>666</li>
</ul>
</body>
</html>
2回答
好帮手慕粉
2020-07-29
同学你好,老师在测试同学代码的时候,没有新建js文件,直接放在body里面了:
所以没有出现同学所说的问题。
好帮手慕粉
2020-07-28
同学你好,当老师运行同学代码时,控制台报如下错:
意思是112行的getTarget 是未定义的,查看112行代码:
另外,同学有个单词写错了:
如果我的回答帮助了你,欢迎采纳。祝学习愉快~
相似问题