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 相关文章推荐
表单的一些基本用法与技巧
Jul 15 Javascript
解读IE和firefox下JScript和HREF的执行顺序
Jan 12 Javascript
JavaScript返回上一页的三种方法及区别介绍
Jul 04 Javascript
js实现的彩色方块飞舞奇幻效果
Jan 27 Javascript
简单的jQuery banner图片轮播实例代码
Mar 04 Javascript
JQuery和PHP结合实现动态进度条上传显示
Nov 23 Javascript
纯JS实现弹性导航条效果
Mar 06 Javascript
jQuery查找dom的几种方法效率详解
May 17 jQuery
说说如何在Vue.js中实现数字输入组件的方法
Jan 08 Javascript
微信小程序接入腾讯云验证码的方法步骤
Jan 07 Javascript
Javascript执行上下文顺序的深入讲解
Nov 04 Javascript
Vue CLI中模式与环境变量的深入详解
May 30 Vue.js
基于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
ThinkPHP中order()使用方法详解
2016/04/19 PHP
Laravel5权限管理方法详解
2016/07/26 PHP
PHP递归实现文件夹的复制、删除、查看大小操作示例
2017/08/11 PHP
PHP实现数组和对象的相互转换操作示例
2019/03/20 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
2020/02/27 PHP
ThinkPHP5.1验证码功能实现的示例代码
2020/06/08 PHP
JavaScript版代码高亮
2006/06/26 Javascript
几行代码轻松搞定jquery实现flash8类似的连接效果
2007/05/03 Javascript
浅析JQuery UI Dialog的样式设置问题
2013/12/18 Javascript
JS自调用匿名函数具体实现
2014/02/11 Javascript
浅析js预加载/延迟加载
2014/09/25 Javascript
Javascript模仿淘宝信用评价实例(附源码)
2015/11/26 Javascript
js 获取范围内的随机数实例代码
2016/08/02 Javascript
老生常谈JQuery data方法的使用
2016/09/09 Javascript
jQuery实现移动端Tab选项卡效果
2017/03/15 Javascript
VUE2.0+Element-UI+Echarts封装的组件实例
2018/03/02 Javascript
详解VS Code使用之Vue工程配置format代码格式化
2019/03/20 Javascript
Nuxt.js 静态资源和打包的操作
2020/11/06 Javascript
JS实现炫酷轮播图
2020/11/15 Javascript
1分钟快速生成用于网页内容提取的xslt
2018/02/23 Python
python3 破解 geetest(极验)的滑块验证码功能
2018/02/24 Python
Tensorflow分类器项目自定义数据读入的实现
2019/02/05 Python
Python中Yield的基本用法
2020/10/18 Python
opencv+pyQt5实现图片阈值编辑器/寻色块阈值利器
2020/11/13 Python
css3个性化字体_动力节点Java学院整理
2017/07/12 HTML / CSS
利用HTML5中的Canvas绘制一张笑脸的教程
2015/05/07 HTML / CSS
用html5的canvas和JavaScript创建一个绘图程序的简单实例
2016/07/06 HTML / CSS
医护人员英文求职信范文
2013/11/26 职场文书
家长评语和期望
2014/02/10 职场文书
研究生毕业自我鉴定范文
2014/03/27 职场文书
婚假请假条怎么写
2014/04/10 职场文书
美术兴趣小组活动总结
2014/07/07 职场文书
建国大业观后感800字
2015/06/01 职场文书
Nginx工作原理和优化总结。
2021/04/02 Servers
python3 实现mysql数据库连接池的示例代码
2021/04/17 Python
使用canvas仿Echarts实现金字塔图的实例代码
2021/11/11 HTML / CSS