博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js 添加事件 attachEvent 和 addEventListener
阅读量:5875 次
发布时间:2019-06-19

本文共 1345 字,大约阅读时间需要 4 分钟。

我们在给组件添加事件的时候一般可以这样

 1 <input type="button" value="submit" οnclick="method()" /> 

这种方法简单高效,但如果对同一个元素添加同一个事件的时候,会造成前面的方法失效,只运行最后一个

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

最终 只会执行method3()方法,在IE11(不包括11)以下我们可以用 element.attachEvent(type, function)方法,值得注意的是,type事件类型 需要加上 "on",例如点击事件,type="onclick",

obj.attachEvent("onclick",method1);obj.attachEvent("onclick",method2);obj.attachEvent("onclick",method3);

在执行时为倒序执行,method3 -> method2 -> method1, 可惜这是IE的专属方法,其他浏览器大部分都支持 W3C标准的 element.addEventListener(type,function,useCapture) 方法,type 类型这里不用加 "on" 例如

1 obj.addEventListener("click", method1, false);2 obj.addEventListener("click", method2, false);3 obj.addEventListener("click", method3, false);

执行顺序为 正序,即 method1 -> method2 -> method3

为了兼容性问题,前人重写了通用的注册事件的方法

function addEvent(elm, eType, fn, useCapture){    if(elm.addEventListener){        elm.addEventListener(eType, fn, useCapture);        return true;    }else if(elm.attachEvent){        var r = elm.attachEvent("on"+eType, fn);        return r;    }else{        elm['on'+eType] = fn;    }}

其他博客流传的 Dean Edwards 的版本,功能强大,我就不贴出来了,贴一个H5版本

1 var addEvent = (function(){   2     if(document.addEventListener){   3         return function(el,type,fn){   4             if(el.length){   5                 for(var i=0;i

 

转载于:https://www.cnblogs.com/PigpigRun/p/9122484.html

你可能感兴趣的文章
最短路径算法-Dijkstra算法的应用之单词转换(词梯问题)
查看>>
软链接和硬链接详解
查看>>
HTML5 video 视频标签 常用属性
查看>>
深入理解javascript对象系列第一篇——初识对象
查看>>
Redis_master-slave模式
查看>>
qemu安装
查看>>
多媒体开发之rtmp---rtmp client 端的实现
查看>>
3.使用Maven构建Web项目
查看>>
iView实现自定义Modal
查看>>
如何在云帮上配置https
查看>>
JQuery干货篇之插入元素
查看>>
Imperva开源域目录控制器,简化活动目录集成
查看>>
可观察性驱动开发,探索未知之地
查看>>
Webpack构建兼容IE8
查看>>
Deis发布1.4版本,支持Microsoft Azure
查看>>
解读2016之Golang篇:极速提升,逐步超越
查看>>
原创:新手布局福音!微信小程序使用flex的一些基础样式属性(二)
查看>>
Swift 烧脑体操(二) - 函数的参数
查看>>
用Elm语言降低失败的风险
查看>>
荷兰商业银行使用精益领导力推行改进
查看>>