javaScript事件机制兼容【详细整理】


Posted in Javascript onJuly 23, 2016

【添加事件机制】  addEventListener  和  attachEvent

[W3C]

addEventListener('click' , function(){alert('Hello World')} ,false )  //W3C规范添加事件(IE8及以上不兼容);  第一个参数为事件类型 ,第二个为事件程序 ,第三个 false为事件冒泡,true为事件捕获

[IE]

attachEvent('onclick',function(){alert('Hello World')})  //IE添加事件;  第一个参数为事件类型(需要加on) ; 第二个为事件程序 ; 因为IE只支持事件冒泡,所以只有两个参数

[跨浏览器兼容]

function insertEvent(obj,Event,fun){

if(obj.addEvenListener){

 
 addEventLitener(Event,fun,false)


}else if(obj.attach){



attachEvent('on'+Event,fun)


}


}

【删除事件机制】 removeEventListener  detachEvent

[W3C] removeEventListener

removeEventListener()    //利用addEventListener新增的事件只能通过removeEventListener来删除;

[注意] //以下这种删除事件方式是错误的,因为事件程序必须不能是一个匿名函数

addEventListener('click' , function(){alert('Hello World')} ,false )

removeEventListener('click',function(){alert('Hello World')},false) 

 [解决]

addEventListener('click' , box ,false );

removeEventListener('click',box,false) ;

function box(){

alert('Hello World');

}

[跨浏览器兼容]

function deleteEvent(obj,Event,fun){

if(obj.removeEventListener){



removeEventListener(Event,fun,false);


}else if(obj.detachEvent){



detachEvent('on'+Event,fun)


 }

}

 【阻止特定事件的默认行为】

[preventDefault  和returnValue]

[W3C] preventDefault

[IE]  reutrnValue

[跨浏览器兼容]

function(event){

event=event || window.event;


if(event.preventDefault){



event.preventDefault()


}else{


 event.returnValue=false;


}

}

【获取目标对象】

[target 和 srcElement]

function(event){

event=event || window.event;


if(event.target){



return event.target;


}else if(event.srcElement){



return event.srcElement;


}

 


}

以上这篇javaScript事件机制兼容【详细整理】就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 写类方式之四
Jul 05 Javascript
jquery 表单下所有元素的隐藏
Jul 25 Javascript
xml 封装与解析(javascript和C#中)
Jul 26 Javascript
js 实现菜单左右滚动显示示例介绍
Nov 21 Javascript
JS、DOM和JQuery之间的关系示例分析
Apr 09 Javascript
javaScript生成支持中文带logo的二维码(jquery.qrcode.js)
Jan 03 Javascript
关于Bootstrap按钮组件消除黄框的方法
May 19 Javascript
使用wxapp-img-loader自定义组件实现微信小程序图片预加载功能
Oct 18 Javascript
JS实现图片切换效果
Nov 17 Javascript
Element中的Cascader(级联列表)动态加载省\市\区数据的方法
Mar 27 Javascript
阿望教你用vue写扫雷小游戏
Jan 20 Javascript
纯js实现无缝滚动功能代码实例
Feb 21 Javascript
基于bootstrap实现广告轮播带图片和文字效果
Jul 22 #Javascript
基于Bootstrap实现的下拉菜单手机端不能选择菜单项的原因附解决办法
Jul 22 #Javascript
基于Bootstrap实现下拉菜单项和表单导航条(两个菜单项,一个下拉菜单和登录表单导航条)
Jul 22 #Javascript
JavaScript中的Reflect对象详解(ES6新特性)
Jul 22 #Javascript
JavaScript结合Bootstrap仿微信后台多图文界面管理
Jul 22 #Javascript
详细探究ES6之Proxy代理
Jul 22 #Javascript
jquery常用的12个小功能
Jul 22 #Javascript
You might like
php $_SERVER windows系统与linux系统下的区别说明
2014/02/14 PHP
php实现的Curl封装类Curl.class.php用法实例分析
2015/09/25 PHP
PHP编程快速实现数组去重的方法详解
2017/07/22 PHP
原生JS实现Ajax通过POST方式与PHP进行交互的方法示例
2018/05/12 PHP
PHP中常见的密码处理方式和建议总结
2018/10/14 PHP
基于jQuery实现点击同时更改两个iframe的网址
2010/07/01 Javascript
用jQuery中的ajax分页实现代码
2011/09/20 Javascript
探索Emberjs制作一个简单的Todo应用
2012/11/07 Javascript
使用ImageMagick进行图片缩放、合成与裁剪(js+python)
2013/09/16 Javascript
js获取form的方法
2015/05/06 Javascript
简介JavaScript中toTimeString()方法的使用
2015/06/12 Javascript
jquery获取文档高度和窗口高度汇总
2016/01/25 Javascript
AngularJs  E2E Testing 详解
2016/09/02 Javascript
jQuery leonaScroll 1.1 自定义滚动条插件(推荐)
2016/09/17 Javascript
Ajax+FormData+javascript实现无刷新表单信息提交
2016/10/24 Javascript
玩转NODE.JS(四)-搭建简单的聊天室的代码
2016/11/11 Javascript
JavaScript奇技淫巧44招【实用】
2016/12/11 Javascript
react 实现页面代码分割、按需加载的方法
2018/04/03 Javascript
详解webpack import()动态加载模块踩坑
2018/07/17 Javascript
Spring boot 和Vue开发中CORS跨域问题解决
2018/09/05 Javascript
JSON字符串操作移除空串更改key/value的介绍
2019/01/05 Javascript
el-form 多层级表单的实现示例
2020/09/10 Javascript
[01:33:14]LGD vs VP Supermajor 败者组决赛 BO3 第二场 6.10
2018/07/04 DOTA
Python多进程multiprocessing.Pool类详解
2018/04/27 Python
python实现一个函数版的名片管理系统过程解析
2019/08/27 Python
Python经典五人分鱼实例讲解
2021/01/04 Python
Vuori官网:运动服装的终级表现
2021/01/27 全球购物
自动化专业毕业生求职信
2014/06/18 职场文书
2014年教师党员自我评价范文
2014/09/22 职场文书
门市房租房协议书
2014/12/04 职场文书
市场督导岗位职责
2015/04/10 职场文书
入党介绍人考察意见
2015/06/01 职场文书
基层工作经历证明
2015/06/19 职场文书
小学生读书笔记
2015/07/01 职场文书
2016年学生会感恩节活动总结
2016/04/01 职场文书
探究Mysql模糊查询是否区分大小写
2021/06/11 MySQL