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 相关文章推荐
Js+Dhtml:WEB程序员简易开发工具包(预先体验版)
Nov 07 Javascript
jQuery学习笔记之toArray()
Jun 09 Javascript
浅谈javascript中replace()方法
Nov 10 Javascript
解决js函数闭包内存泄露问题的办法
Jan 25 Javascript
JavaScript判断数字是否为质数的方法汇总
Jun 02 Javascript
如何学JavaScript?前辈的经验之谈
Dec 28 Javascript
浅谈js script标签中的预解析
Dec 30 Javascript
react.js 翻页插件实例代码
Jan 19 Javascript
js实现数组和对象的深浅拷贝
Sep 30 Javascript
探索Vue高阶组件的使用
Jan 08 Javascript
vue.js提交按钮时进行简单的if判断表达式详解
Aug 08 Javascript
SpringBoot+Vue 前后端合并部署的配置方法
Dec 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
php csv操作类代码
2009/12/14 PHP
php session和cookie使用说明
2010/04/07 PHP
浅析php过滤html字符串,防止SQL注入的方法
2013/07/02 PHP
php将字符串转化成date存入数据库的两种方式
2014/04/28 PHP
CI框架中site_url()和base_url()的区别
2015/01/07 PHP
javascript数组与php数组的地址传递及值传递用法实例
2015/01/22 PHP
php实现smarty模板无限极分类的方法
2015/12/07 PHP
jquery 最简单易用的表单验证插件
2010/02/27 Javascript
如何让div span等元素能响应键盘事件操作指南
2012/11/13 Javascript
裁剪字符串trim()自定义改进版
2013/04/10 Javascript
JQ获取动态加载的图片大小的正确方法分享
2013/11/08 Javascript
js判读浏览器是否支持html5的canvas的代码
2013/11/18 Javascript
Javascript浅谈之this
2013/12/17 Javascript
textarea焦点的用法实现获取焦点清空失去焦点提示效果
2014/05/19 Javascript
跟我学习javascript的call(),apply(),bind()与回调
2015/11/16 Javascript
bootstrap表单示例代码分享
2017/05/18 Javascript
微信小程序 本地图片按照屏幕尺寸处理
2017/08/04 Javascript
js点击时关闭该范围下拉菜单之外的菜单方法
2018/01/11 Javascript
Vue实现移动端左右滑动效果的方法
2018/11/27 Javascript
Python 抓取动态网页内容方案详解
2014/12/25 Python
pygame学习笔记(2):画点的三种方法和动画实例
2015/04/15 Python
python嵌套字典比较值与取值的实现示例
2017/11/03 Python
python判断字符串是否是json格式方法分享
2017/11/07 Python
Python时间戳使用和相互转换详解
2017/12/11 Python
python读文件保存到字典,修改字典并写入新文件的实例
2018/04/23 Python
Python3实现的字典、列表和json对象互转功能示例
2018/05/22 Python
使用Python微信库itchat获得好友和群组已撤回的消息
2018/06/24 Python
解决python写入带有中文的字符到文件错误的问题
2019/01/31 Python
python3调用windows dos命令的例子
2019/08/14 Python
Python多线程正确用法实例解析
2020/05/30 Python
html table呈现个人简历以及单元格宽度失效的问题解决
2021/01/22 HTML / CSS
存储过程的优点有哪些
2012/09/27 面试题
恶意软件的定义
2014/11/12 面试题
golang判断key是否在map中的代码
2021/04/24 Golang
使用MybatisPlus打印sql语句
2022/04/22 SQL Server
Win11 KB5015814遇安装失败 影响开始菜单性能解决方法
2022/07/15 数码科技