求大神帮忙看看

来源:2-4 IE事件处理程序及跨浏览器解决

请叫我Carrot

2016-09-27 23:04

<!DOCTYPE html>

<html>

<title>事件流</title>

<meta charset="utf-8"></head>


<body>

<div id="box">

<input type="button" value="按钮" id="btn" onclick="showMes()">

<input type="button" value="按钮2" id="btn2">

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

<input type="button" value="按钮4" id="btn4">

</div>


<script type="text/javascript">

function showMes(){

alert("Hello World");

}

var btn2=document.getElementById("btn2");

var btn3=document.getElementById("btn3");

btn2.onclick=function(){

alert("这是通过DOM0级添加的事件");

}

btn2.onclick=null;//删除onclick属性


/*//DOM 2级事件

//两个方法addEventListener(),removeEventListener(),

//三个参数①要处理的事件名 ②处理程序的函数 ③布尔值(冒泡false;捕获true)

btn3.addEventListener("click",showMes,false);//注意:是 click

btn3.addEventListener("click",function(){

alert(this.value)

},false);

btn3.removeEventListener("click",showMes,false);//删除


//IE 事件处理程序 

//两个方法attach(),detach()

//两个相同的参数 ①要处理的事件名 ②处理程序的函数 (IE只支持事件冒泡)

btn4.attach("onclick",showMes);//IE OPERA支持

btn4.dettach("onclick",showMes);*/


//跨浏览器的事件处理程序

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 

{

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(btn3,"click",showMes);

</script>

</body>

</html>

不知道哪里错了,就是显示不出来

写回答 关注

1回答

  • 请叫我Carrot
    2016-09-27 23:08:35

    知道了,addHandler 与removeHandler之间少了 逗号

DOM事件探秘

DOM事件?本课程会通过实例来给小伙伴们讲解如何使用这些事件

99545 学习 · 1197 问题

查看课程

相似问题