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 屏蔽鼠标键盘的几段代码
Jan 02 Javascript
从父页面读取和操作iframe中内容方法
Jul 25 Javascript
用javascript替换URL中的参数值示例代码
Jan 27 Javascript
jQuery实现隔行背景色变色
Nov 24 Javascript
jQuery学习笔记之2个小技巧
Jan 19 Javascript
JavaScript中计算网页中某个元素的位置
Jun 10 Javascript
javascript实现的多个层切换效果通用函数实例
Jul 06 Javascript
BootStrap 超链接变按钮的实现方法
Sep 25 Javascript
微信小程序实现全局搜索代码高亮的示例
Mar 30 Javascript
vue 2.1.3 实时显示当前时间,每秒更新的方法
Sep 16 Javascript
JS数组实现分类统计实例代码
Sep 30 Javascript
深入理解JavaScript的值传递和引用传递
Oct 24 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中$_REQUEST、$_POST、$_GET的区别和联系小结
2011/11/23 PHP
全新的PDO数据库操作类php版(仅适用Mysql)
2012/07/22 PHP
php跨域cookie共享使用方法
2014/02/20 PHP
php实现读取手机客户端浏览器的类
2015/01/09 PHP
php基础教程
2015/08/26 PHP
php网页版聊天软件实现代码
2016/08/12 PHP
ThinkPHP 3.2.2实现事务操作的方法
2017/05/05 PHP
struts2+jquery+json实现异步加载数据(自写)
2013/06/24 Javascript
js实现非常简单的焦点图切换特效实例
2015/05/07 Javascript
一种angular的方法级的缓存注解(装饰器)
2018/03/13 Javascript
浅析Vue实例以及生命周期
2018/08/14 Javascript
JavaScript中this关键字用法实例分析
2018/08/24 Javascript
js getBoundingClientRect使用方法详解
2019/07/17 Javascript
扫微信小程序码实现网站登陆实现解析
2019/08/20 Javascript
js模拟实现百度搜索
2020/06/28 Javascript
[01:09:16]DOTA2-DPC中国联赛 正赛 SAG vs Dynasty BO3 第一场 1月25日
2021/03/11 DOTA
Python下的Mysql模块MySQLdb安装详解
2014/04/09 Python
python使用sorted函数对列表进行排序的方法
2015/04/04 Python
Python文件和流(实例讲解)
2017/09/12 Python
深入理解Django中内置的用户认证
2017/10/06 Python
python决策树之CART分类回归树详解
2017/12/20 Python
详解Python自建logging模块
2018/01/29 Python
浅谈django的render函数的参数问题
2018/10/16 Python
对python 生成拼接xml报文的示例详解
2018/12/28 Python
python实现扫描ip地址的小程序
2019/04/16 Python
python mysql断开重连的实现方法
2019/07/26 Python
python中通过selenium简单操作及元素定位知识点总结
2019/09/10 Python
使用scrapy ImagesPipeline爬取图片资源的示例代码
2020/09/28 Python
聊聊Python pandas 中loc函数的使用,及跟iloc的区别说明
2021/03/03 Python
CSS3 实现倒计时效果
2020/11/25 HTML / CSS
中科软测试工程师面试题
2012/06/16 面试题
师范生求职信
2014/06/14 职场文书
2014小学一年级班主任工作总结
2014/12/05 职场文书
股权转让协议范本
2014/12/07 职场文书
公安机关起诉意见书
2015/05/20 职场文书
Python 中数组和数字相乘时的注意事项说明
2021/05/10 Python