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

到底哪儿写错了,所有浏览器都没有效果了。

<div id="box">

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

    <input type="button" value="按钮2" id="btn2" onclick="" /><!--DOM的0级事件处理示例-->

    <input type="button" value="按钮3" id="btn3" onclick="" /><!--DOM的2级事件处理示例-->

</div>


<script>

function showMes(){

alert("触发了点击事件!");

}


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>


提问者:一指定江山 2016-11-16 12:22

个回答

  • 云彩无色3804005
    2016-11-16 14:34:28
    已采纳

    <div id="box">

        <input type="button" value="按钮3" id="btn3" /><!--DOM的2级事件处理示例-->   //不用添加onclick=""

    </div>

    <script>

    function showMes(){

    alert("触发了点击事件!");

    }

    var btn3=document.getElementById('btn3');  //你没获取btn3

    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);

    eventUtil.removeHandler(btn3,"click",showMes);   

    }

    </script>

    你试下,我代码没测试,看完直接改你的 

  • 慕沐9665835
    2016-11-16 14:15:06

    两个if后面少了个),添加句柄最后面的大括号少个逗号,就是添加、删除句柄用逗号隔开