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

addHandler:function(){}和function addHandler(){}是不是同一个意思?

这两个是不是同一个意思?定义了函数addHandler()


提问者:温暖密室 2016-01-23 16:17

个回答

  • 温暖密室
    2016-01-24 09:07:22

    可能我没有写的全,有些人也没有看到过。视频——DOM事件探秘(2-4 IE事件处理程序及跨浏览器解决)

    <!DOCTYPE html>

    <html>

    <head>

        <meta charset="UTF-8">

        <title>事件流</title>

    </head>

    <body>

        <form>

            <input type="button" value="按钮" id="btn" onclick="showMessage()">

            <input type="button" value="按钮2" id="btn2">

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

        </form>

    <script>

        function showMessage(){

    alert("hello world!");

    }

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

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

    /* btn2.onclick=function(){

    alert("hello world!");

    }

    btn2.onclick=null;

    //btn3.addEventListener("click",showMessage,false);

    //btn3.removeEventListener("click",showMessage,false);

    btn3.attachEvent("onclick",showMessage);

    btn3.detachEvent("onclick",showMessage);  */

    //跨浏览器事件处理程序

    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.addEventListener){

    element.removeEventListener(type,handler,false);

    }

    else if(element.attachEvent){

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

    }

    else{

    element['on'+type]=null;

    }

    }

    }

    eventutil.addHandler(btn3,"click",showMessage);

    eventutil.removeHandler(btn3,"click",showMessage);

        </script>

    </body>

    </html>

    以上加粗的部分代码,还有“删除句柄”上面的逗号“,”也有点不理解。


  • 麦尔丹
    2016-01-23 19:57:06

    这个addHandler:function(){}是什么?   

    没见过这种形式,刚试了试,编译不通过,说是有“无意的)”。JavaScript函数两种形式

            1.function add(){}     函数定义

            2.var  add = function(){}   函书表达式

    前面带冒号,不知道是我孤陋寡闻,还是楼主打错了,如果是前者,在此请教。

  • 流星我再来
    2016-01-23 18:34:53

    个人理解是不一样。。我认为第一个是函数表达式,第二个是函数声明。