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 16 Javascript
js 获取屏幕各种宽高的方法(浏览器兼容)
May 15 Javascript
js中一维数组和二位数组中的几个问题示例说明
Jul 17 Javascript
JavaScript实现twitter puddles算法实例
Dec 06 Javascript
详解JavaScript对象类型
Jun 16 Javascript
用Vue.js实现监听属性的变化
Nov 17 Javascript
深入理解javascript函数参数与闭包
Dec 12 Javascript
Vue 2.x教程之基础API
Mar 06 Javascript
菊花转动的jquery加载动画效果
Aug 19 jQuery
vue+axios 前端实现登录拦截的两种方式(路由拦截、http拦截)
Oct 24 Javascript
小程序实现授权登陆的解决方案
Dec 02 Javascript
详解使用WebPack搭建React开发环境
Aug 06 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页面中文乱码分析
2013/10/29 PHP
浅谈PHP中其他类型转化为Bool类型
2016/03/28 PHP
php版微信小店调用api示例代码
2016/11/12 PHP
PHP 中使用explode()函数切割字符串为数组的示例
2017/05/06 PHP
php实现微信原生支付(扫码支付)功能
2018/05/30 PHP
Jquery右下角抖动、浮动 实例代码(兼容ie6、FF)
2013/08/15 Javascript
jquery UI Datepicker时间控件的使用方法(加强版)
2015/11/07 Javascript
js实现为a标签添加事件的方法(使用闭包循环)
2016/08/02 Javascript
JS实现根据文件字节数返回文件大小的方法
2016/08/02 Javascript
浅谈js中子页面父页面方法 变量相互调用
2016/08/04 Javascript
jQuery插件form-validation-engine正则表达式操作示例
2017/02/09 Javascript
NodeJs下的测试框架Mocha的简单介绍
2017/02/22 NodeJs
jquery.uploadView 实现图片预览上传功能
2017/08/10 jQuery
Vue.js+Layer表格数据绑定与实现更新的实例
2018/03/07 Javascript
微信小程序实现电子签名功能
2020/07/29 Javascript
Vue中ref和$refs的介绍以及使用方法示例
2021/01/11 Vue.js
浅谈python中截取字符函数strip,lstrip,rstrip
2015/07/17 Python
python实现逐个读取txt字符并修改
2018/12/24 Python
Python3.5迭代器与生成器用法实例分析
2019/04/30 Python
Win10下Python3.7.3安装教程图解
2019/07/08 Python
python psutil模块使用方法解析
2019/08/01 Python
Python学习笔记之While循环用法分析
2019/08/14 Python
Python绘制股票移动均线的实例
2019/08/24 Python
Python小白垃圾回收机制入门
2020/06/09 Python
Python map及filter函数使用方法解析
2020/08/06 Python
20行代码教你用python给证件照换底色的方法示例
2021/02/05 Python
zooplus德国:便宜地订购动物用品、动物饲料、动物食品
2020/05/06 全球购物
汽车销售员如何做职业生涯规划
2014/02/16 职场文书
支行行长竞聘演讲稿
2014/05/15 职场文书
初中成绩单评语
2014/12/29 职场文书
2015年度优秀员工推荐信
2015/03/23 职场文书
商场收银员岗位职责
2015/04/07 职场文书
表扬信格式模板
2015/05/05 职场文书
mysql获取指定时间段中所有日期或月份的语句(不设存储过程,不加表)
2021/06/18 MySQL
JavaWeb Servlet实现网页登录功能
2021/07/04 Java/Android
利用js实现简单开关灯代码
2021/11/23 Javascript