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

兼容的地方,IE仍然没效果,帮忙看看

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>DOM事件对象</title>

</head>

<body>

<div>

<input type="button" value="按钮1" id="button1" onclick="showMes()" />

<input type="button" value="按键2" id="button2" />

<input type="button" value="按钮3" id="button3" />

</div>

<script type="text/javascript">

function showMes(){

event = event || window.event;

alert(event.type);

alert(event.target.nodeName);

}

var button2 = document.getElementById('button2');

var button3 = document.getElementById('button3');


button2.onclick = function(){

alert("DOM0级事件处理程序");

}

button2.onclick = null;

//下面处理兼容的问题,能力判断

var eventUtil = {

//添加事件

addHandler: function(element, type, handler){

if(element.addEventListener){

element.addEventListener(type,handler,false);

}else if(element.attachEvent){

element.attachEvent('on'+type,handler);

}else{

//DOM0级,老版本浏览器

//element[onclick] === element.onclick

element['on'+type] = handler;

}

},


removeHandler: 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;

}

}

}

eventUtil.addHandler(button3,'click',showMes);

</script>

</body>

</html>


正在回答

2 回答

//IE中事件对象是作为全局对象( window.event )存在的,Firefox中则是做为句柄( handler )的第一个参数传入内的

//所以应该这样写

function showMes(){

var event = window.event||arguments[0];

alert(event.type);

var element=event.srcElement?event.srcElement:event.target;

alert(element.nodeName);

//由于IE不支持event.target属性,但是IE有event.srcElement,作用等同于event.target,所以可以这样写

}http://img1.sycdn.imooc.com//57170ef00001c57807680347.jpg

图片的四种方法具体可以看http://wenku.baidu.com/view/400a89f4f61fb7360b4c65ca.html


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

window.onload=function(){}

没有加载

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

哈喽姑娘 提问者

这节视频里的代码中没有加载啊。。顺便问问,这个加载的作用到底是什么啊?
2016-04-12 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

兼容的地方,IE仍然没效果,帮忙看看

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