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 相关文章推荐
Html中JS脚本执行顺序简单举例说明
Jun 19 Javascript
jQuery实现等比例缩放大图片让大图片自适应页面布局
Oct 16 Javascript
Javascript基础教程之变量
Jan 18 Javascript
js实现基于正则表达式的轻量提示插件
Aug 29 Javascript
js 右侧浮动层效果实现代码(跟随滚动)
Nov 22 Javascript
jQuery实现根据滚动条位置加载相应内容功能
Jul 18 Javascript
jQuery实现模拟flash头像裁切上传功能示例
Dec 11 Javascript
12条写出高质量JS代码的方法
Jan 07 Javascript
jQuery的Ajax接收java返回数据方法
Aug 11 jQuery
详解如何在Node.js的httpServer中接收前端发送的arraybuffer数据
Nov 11 Javascript
微信小程序转化为uni-app项目的方法示例
May 22 Javascript
JS实现简单九宫格抽奖
Jun 28 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
经典的PHPer为什么被认为是草根?
2007/04/02 PHP
php获取网页内容方法总结
2008/12/04 PHP
PHP fopen 读取带中文URL地址的一点见解
2012/09/25 PHP
无需重新编译php加入ftp扩展的解决方法
2013/02/07 PHP
PHP json_decode函数详细解析
2014/02/17 PHP
Yii2框架制作RESTful风格的API快速入门教程
2016/11/08 PHP
php中简单的对称加密算法实现
2017/01/05 PHP
PDO::beginTransaction讲解
2019/01/27 PHP
Laravel find in set排序实例
2019/10/09 PHP
Javascript delete 引用类型对象
2013/11/01 Javascript
Javascript学习笔记之数组的构造函数
2014/11/23 Javascript
JavaScript中实现依赖注入的思路分享
2015/01/15 Javascript
jQuery鼠标经过方形图片切换成圆边效果代码分享
2015/08/20 Javascript
JavaScript瀑布流布局实现代码
2017/05/06 Javascript
详解webpack分离css单独打包
2017/06/21 Javascript
vue.js内部自定义指令与全局自定义指令的实现详解(利用directive)
2017/07/11 Javascript
JS继承与闭包及JS实现继承的三种方式
2017/10/15 Javascript
Vue父子组件之间的通信实例详解
2018/09/28 Javascript
node.js爬取中关村的在线电瓶车信息
2018/11/13 Javascript
详解使用Nuxt.js快速搭建服务端渲染(SSR)应用
2019/03/13 Javascript
小谈angular ng deploy的实现
2020/04/07 Javascript
Vue 根据条件判断van-tab的显示方式
2020/08/03 Javascript
JavaScript实现轮播图效果
2020/10/30 Javascript
Jquery+javascript实现支付网页数字键盘
2020/12/21 jQuery
Flask框架配置与调试操作示例
2018/07/23 Python
Python数据可视化库seaborn的使用总结
2019/01/15 Python
Python实现图片裁剪的两种方式(Pillow和OpenCV)
2019/10/30 Python
python求最大公约数和最小公倍数的简单方法
2020/02/13 Python
BCBG官网:BCBGMAXAZRIA
2017/12/29 全球购物
房产转让协议书(2014版)
2014/09/30 职场文书
2015年汽车销售员工作总结
2015/07/24 职场文书
《黄道婆》教学反思
2016/02/22 职场文书
《中华上下五千年》读后感3篇
2019/11/29 职场文书
React forwardRef的使用方法及注意点
2021/06/13 Javascript
如何避免mysql启动时错误及sock文件作用分析
2022/01/22 MySQL
nginx lua 操作 mysql
2022/05/15 Servers