zoukankan      html  css  js  c++  java
  • attachEvent和addEventListener区别

     

    一般来说,可以直接封装成这种形式:

    var addEvent = function(element,type,handler){ 
                if(element.addEventListener){  //DOM2级
                    element.addEventListener(type,handler,false); //false为冒泡,true为捕获
                }else if(element.attachEvent){  //IE
                    element.attachEvent("on"+type,function(){  //默认皆为冒泡
                        handler.call(element);
                    });
                }else{ 
                    element["on"+type] = handler; //DOM0级
                }
            };

    addEventListener的使用方式:主要是DOM2级

    target.addEventListener(type, listener, useCapture);

    target就是要注册事件的对象

    type就是事件类型  比如“click"

    listener就是监听的函数

    useCapture就是是否使用捕获方式,false为冒泡,true为捕获

    attachEvent使用方式:主要是IE中使用

    target.attachEvent(type, listener);

    type是事件类型,注意是这种形式:”onclick"

    listener监听的函数

    默认使用冒泡的方式

    相应的,解除事件的方法:

    removeEventListener(event,function,useCapture);

    detachEvent(event,function);

    补充:

    1、addEventListener 
    适用w3c标准方法addEventListener绑定事件,如下,事件的执行顺序和绑定顺序一致,执行顺序为method1->method2->method3

     
    1. //element.addEventListener(type,listener,useCapture);
    2. btn1Obj.addEventListener("click",method1,false);
    3. btn1Obj.addEventListener("click",method2,false);
    4. btn1Obj.addEventListener("click",method3,false);

    2、attachEvent 
    在IE8及以下版本中,不支持addEventListener,只能用attachEvent绑定事件,执行顺序是 method3->method2->method1

     
    1. //object.attachEvent(event,function);
    2. btn1Obj.attachEvent("onclick",method1);
    3. btn1Obj.attachEvent("onclick",method2);
    4. btn1Obj.attachEvent("onclick",method3);

    3、属性赋值法绑定事件 
    适用该方法会使后绑定的方法覆盖前面的方法,要想一次性绑定多个(一次性执行多个操作,可以再一个事件中调用多个方法)

     
    1. obj.onclick=method1;
    2. obj.onclick=method2;
    3. obj.onclick=method3;

    一次性绑定多个:

     
    obj.onclick=function (){
    method1();
    method2();
    method3();
    }
  • 相关阅读:
    用Python证明“真理再前进一步就是谬误”
    senior developer in Hongkong
    Emacs 维基百科,自由的百科全书
    深入C(和C++)
    图灵等价和图灵完备
    2012年中国大陆和香港的工资收入水平市场调查报告
    图灵完备
    linux中vi进行字符替换_井底之蛙_百度空间
    they're hiring
    Linux下游戏大作赏析(三)
  • 原文地址:https://www.cnblogs.com/ilinuxer/p/5293623.html
Copyright © 2011-2022 走看看