问答详情
源自:2-4 IE事件处理程序及跨浏览器解决

按钮5和6都没反应

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>事件</title>

</head>


<body>

<input type="button" value="按钮1" onclick="alert('111')"/>

<input type="button" value="按钮2" onclick="aaa()"/>

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

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

<input type="button" value="按钮5" id="but5"/>

<input type="button" value="按钮6" id="but6"/>


<script type="text/javascript">

//html方法

function aaa(){

alert("222");

}

//DOM0级

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

but3.onclick=function(){alert("333");};

//DOM2级

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

but4.addEventListener("click",aaa,false);

//but4.removeEventListener("click",aaa,false);

//IE

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

but5.attachEvent("onclick",aaa);

//but5.detachEvent("onclick",aaa);

//跨浏览器


var eventUtil={

addevent:function(ele,type,hander){

if(ele.addEventListener){

ele.addEventListener(type,hander,false);

}

else if(ele.attachEvent){

ele.attachEvent("on"+type,hander);

}

else{

ele["on"+type]=hander;

//ele.onclick===ele["onclick"];

}

},

removeevent:function(ele,type,hander){

if(ele.removeEventListener){

ele.removeEventListener(type,hander,false);

}

else if(ele.detachEvent){

ele.detachEvent("on"+type,hander);

}

else{

ele["on"+type]=null;

}

}

};

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

eventUtil.addevent(but6,"click",aaa);

//but6.attachEvent("onclick",aaa);

</script>


</body>

</html>


提问者:nico_0 2016-03-22 09:50

个回答

  • 叶微白_
    2016-03-22 10:42:14
    已采纳

    //IE

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

    but5.attachEvent("onclick",aaa);

    //but5.detachEvent("onclick",aaa);

    //跨浏览器


    这段代码需要注释掉。按钮6就能用,在“//跨浏览器”代码中调用按钮5,按钮5就能用。

  • 丫丫小小笑
    2016-03-22 10:48:18

    而且第5个按钮仅仅是在IE上才支持的,其他浏览器是不支持的。

  • 丫丫小小笑
    2016-03-22 10:47:13

    //DOM2级

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

    but4.addEventListener("click",aaa,false);

    //but4.removeEventListener("click",aaa,false);

    //IE

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

    but5.attachEvent("onclick",aaa);

    //but5.detachEvent("onclick",aaa);

    把这些都注释掉。。。因为前面写的这些是会对后面的能力选择造成错误的。