猿问

帮忙看下代码哪里出问题,工具提示是 handler没有赋值,不是用showMes函数赋值了吗?

<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" >

</div>

<script>

  function showMes(){

alert('hello');

}

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

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

btn2.onclick=function(){

alert('这是一个DOM0级添加事件');

}

btn2.onclick=null;

//DOM二级事件

/* btn3.addEventListener('click',showMes,false);

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

  alert(this.value);},false);

//删除事件

btn3.removeEventListener('click',showMes,false);

    btn3.attachEvent('onclick',showMes);

btn3.detachEvent('onclick',showMes);*/

//跨浏览器事件

var eventUtil={

//添加句柄

addHandler:function(element,type,handler){

if(element.addEventListener){

element.addEventListener(type,hanlder,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,hanlder,false);}

else if(element.detchEvent){

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

}

else{

element['on'+type]=null; 

}

}

}

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

     

</script>

</body>

</html>


慕粉3968675
浏览 1362回答 2
2回答

stone310

有2个地方打错字了:1、handler打错成hanlder//添加句柄addHandler:function(element,type,handler){if(element.addEventListener){element.addEventListener(type,hanlder,false);}2、detachEvent打错成detchEvent,这里也有个handler//删除句柄          removeHandler:function(element,type,handler){if(element.removeEventListener){element.removeEventListener(type,hanlder,false);}else if(element.detchEvent){element.detchEvent('on'+type,handler);

慕粉3968675

终于解决了,谢谢
随时随地看视频慕课网APP
我要回答