问答详情
源自:3-1 DOM中的事件对象

我这个是什么问题,代码跟老师一样呀,谁帮我看看


<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        
    <script type="text/javascript">
             var btn1=document.getElementById("btn1");
//             var box=document.getElementById("box");
//             function showBox(){
//                 alert("box");
//             }
             function showBtn(event){
                 alert(event.type);
             }
             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(btn1,'click',showBtn);
//             eventUtil.addHandler(box,'click',showBox);
    </script>

    </head>
    
    <body >
        <!--<div id="box">-->
            <input type="button" value="button" id="btn1"/>
        <!--</div>-->
    </body>
</html>

提问者:qq_不换网名_04018291 2017-09-23 10:54

个回答

  • 破旧的时光机3662066
    2017-10-03 20:33:26

    把script放在body最后 ,你放在开头domready没有完成不会执行当然你也可以用window.onload 或者jqeury的ready来完成。具体原因可以看慕课DOM探索之基础详解篇。html文件里的东西从上往下从左往右解析读到哪解析到哪,放在前面先执行了script里的但是下面的dom树还没生成找不到btn所以就会没有反应

  • 醉逍遥neo
    2017-09-27 01:17:45

    需要用window.onload = function(){}把script代码包起来