美文网首页
事件绑定及兼容性处理——attachEvent&addE

事件绑定及兼容性处理——attachEvent&addE

作者: 尤樊容 | 来源:发表于2017-03-10 09:56 被阅读105次

一般我们在JS中添加事件,是这样子的
obj.onclick=method
这种绑定事件的方式,兼容主流浏览器,但不能在同一个元素上添加多次同一事件:

obj.onclick=method1;
obj.onclick=method2;
obj.onclick=method3;

以上这种写法只会执行method3。这并不能满足开发需求,特别是在团队开发的时候,这时候事件绑定attachEvent(IE独有的)和addEventListener就在十分必要了。

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

使用格式是前面是事件类型,注意的是需要加on,比如onclick,onsubmit,onchange,执行顺序是:
method3->method2->method1
可惜这个微软的私人方法,火狐和其他浏览器都不支持,幸运的是他们都支持W3C标准的addEventListener方法

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

执行顺序为: method1->method2->method3
以上两种绑定方式的执行顺序是相反的,但是一般不会有太大影响。
以上内容主要参考:https://www.oschina.net/question/54100_25614
以下是兼容处理方法:

function addEvent(obj,oEvn,fn){
    if(obj.addEventListener){
        obj.addEventListener(oEvn,fn,false);
    }else{
        obj.attachEvent('on'+oEvn,fn);
    }
}

相关文章

  • 事件绑定及兼容性处理——attachEvent&addE

    一般我们在JS中添加事件,是这样子的obj.onclick=method这种绑定事件的方式,兼容主流浏览器,但不能...

  • ie8与dom标准

    1.绑定事件 ie8:elem.attacheElement(on+事件名,处理函数) elem.addE...

  • 对dom元素事件的知识点及方法封装

    绑定事件处理函数的方法 1、ele.onxxx = function (){} 兼容性好,但是一个元素的同一事件只...

  • 原生node.js

    一、起步 二、事件驱动程序 // 绑定事件及事件的处理程序eventEmitter.on('eventName',...

  • 事件

    如何绑定事件处理函数 1.ele.onxxx = function(event){}兼容性很好,但是一个元素的同一...

  • js 中事件绑定

    事件绑定 onclick -->事件冒泡,重写onclick会覆盖之前属性,没有兼容性问题。 addEventLi...

  • javascript之“事件绑定”

    设计场景 给元素绑定事件 问题 兼容性问题 解决方案

  • React事件绑定this的几种方法

    React事件处理函数绑定this的集中方法 Follow me on GitHub React事件处理函数绑定t...

  • JS的事件绑定

    绑定事件 onclick,无兼容性问题,但是多次绑定会互相覆盖 addEventListener,w3c的标准方式...

  • Jquery day_3

    1.1 Jquery 事件注册 1.2 jquery 事件处理 on(): 用于事件绑定,目前最好用的事件绑定方...

网友评论

      本文标题:事件绑定及兼容性处理——attachEvent&addE

      本文链接:https://www.haomeiwen.com/subject/bmbkvttx.html