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

请问一下,我的代码哪里出错了,为什么点击按钮没有反应呢?

http://img.mukewang.com/57e4fd4700011ec404950334.jpg

代码是这个样子的

提问者:慕粉3820486 2016-09-23 18:00

个回答

  • rainy_li3676598
    2016-10-11 16:43:27

    <head>

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

    <title>无标题文档</title>

    <script>

    function showmes()

    {alert("none");}

    window.onload=function()   /*在script中先执行, 这时候btn还没有在body中被创建,所以需要加onload加载*/

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

    var eventUtil={

       addHand: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;}

        }

    };   /* 这个 ; 很关键, 我刚才找了半天也是这个错语, 因为你的申明已经线束,需要用分号*/

    eventUtil.addHand(btn,'click',showmes);

    }

    </script>

    </head>

    <body>

    <input type="button" value="按钮" id="btn">

    </body>

    </html>


  • rainy_li3676598
    2016-10-11 16:41:19

    有几个问题:

    1. 如果你这段代码是放在head里面, 需要加上 window.onload, 如果是在body里面就不需要。


    最后一个} 后面要加一个 ;   分号, 因为你的eventUtil已经申明完毕,语句结束

  • imdaniel
    2016-09-23 23:25:56

    检查你的handler是否正确

  • 木古水炎
    2016-09-23 20:56:50

    这段代码莫有错误,已经测试过了

  • 走自己的路
    2016-09-23 19:53:31

    原谅我没看出来错误