javascript高级程序设计第二版第十二章事件要点总结(常用的跨浏览器检测方法)


Posted in Javascript onAugust 22, 2012
var EventUtil={ //跨浏览器处理程序---创建方法 
addHandler:function(element,type,handler){ 
if(element.addEventListener){ 
element.addEventListneter(type,handler,false); 
}else if(element.attachEvent){ 
element.attachEvent("on"+type,handler); 
}else{ 
element["on"+type]=handler; 
} 
} 
removeHandler:function(element,type,handler){ //跨浏览器处理程序---删除方法 
if(element.removeEventListener){ 
element.removeEventListneter(type,handler,false); 
}else if(element.detachEvent){ 
element.detachEvent("on"+type,handler); 
}else{ 
element["on"+type]=handler; 
} 
} 
getEvent:function(event){ //跨浏览器事件对象---返回event对象的引用 
return event?event:window.event; 
} 
getTarget:function(event){ //跨浏览器事件对象---返回事件的目标 
return event.target||event.srcElement; 
} 
preventDefault:function(event){ //跨浏览器事件对象---取消默认事件 
if(event.preventDefault){ 
event.preventDefault(); 
}else{ 
event.returnValue=false; 
} 
} 
stoppropagation:function(event){ //跨浏览器事件对象---阻止事件流 
if(event.stoppropagation){ 
event.stoppropagation(); 
}else{ 
event.canceBubble=false; 
} 
} 
getRelatedTarget:function(event){ //跨浏览器获取相关元素 
if(event.relatedTarget){ 
return event.relatedTarget; 
}else if(event.toElement){ 
return envent.toElement; 
}else if(event.fromElement){ 
return event.fromElement; 
}else{ 
return null; 
} 
} 
getButton:function(event){ //鼠标事件的button属性检测 
if(document.implementation.hasFeature("MouseEvent","2.0")){ 
return event.button; 
}else{ 
switch(event.button){ 
case 0: 
case 1: 
case 3: 
case 5: 
case 7: 
return 0; 
case 2: 
case 6: 
return 2 
case 4: 
return 1 
} 
} 
} 
getCharCode:function(event){ //跨浏览器字符编码---charCode属性检测 
if(typeof event,charCode=="number"){ 
return event.charCode; 
}else{ 
return event.keyCode; 
} 
} 
}

事件委托:事件处理程序过多的解决方案,减少内存并且提高性能;
模拟事件:这个比较复杂,要慢慢研究;
Javascript 相关文章推荐
JavaScript实现Sleep函数的代码
Mar 04 Javascript
javascript据option的value值快速设定初始的selected选项
Aug 13 Javascript
javascript数字格式化通用类 accounting.js使用
Aug 24 Javascript
原生JS实现加入收藏夹的代码
Oct 24 Javascript
JavaScript中的闭包介绍
Mar 15 Javascript
浅析jQuery移动开发中内联按钮和分组按钮的编写
Dec 04 Javascript
js实现不重复导入的方法
Mar 02 Javascript
使用node.js搭建服务器
May 20 Javascript
JS实现求数组起始项到终止项之和的方法【基于数组扩展函数】
Jun 13 Javascript
js实现简单模态框实例
Nov 16 Javascript
微信小程序云开发如何使用云函数生成二维码
May 18 Javascript
vue + elementUI实现省市县三级联动的方法示例
Oct 29 Javascript
js选取多个或单个元素的实现代码(用class)
Aug 22 #Javascript
javascript动态加载三
Aug 22 #Javascript
javascript动态加载二
Aug 22 #Javascript
javascript动态加载实现方法一
Aug 22 #Javascript
原生js写的放大镜效果
Aug 22 #Javascript
window.open不被拦截的实现代码
Aug 22 #Javascript
EASYUI TREEGRID异步加载数据实现方法
Aug 22 #Javascript
You might like
windows下PHP APACHE MYSQ完整配置
2007/01/02 PHP
PHP单文件上传原理及上传函数的封装操作示例
2019/09/02 PHP
javascript web页面刷新的方法收集
2009/07/02 Javascript
js导航菜单(自写)简单大方
2013/03/28 Javascript
整理的比较全的event对像在ie与firefox浏览器中的区别
2013/11/25 Javascript
NodeJS学习笔记之Connect中间件模块(一)
2015/01/27 NodeJs
深入理解JavaScript系列(50):Function模式(下篇)
2015/03/04 Javascript
Bootstrap每天必学之表格
2015/11/23 Javascript
详解Bootstrap的aria-label和aria-labelledby应用
2016/01/04 Javascript
JS组件系列之Bootstrap table表格组件神器【二、父子表和行列调序】
2016/05/10 Javascript
VUE2.0中Jsonp的使用方法
2018/05/22 Javascript
Vue2.X 通过AJAX动态更新数据
2018/07/17 Javascript
在微信小程序里使用watch和computed的方法
2018/08/02 Javascript
前后端如何实现登录token拦截校验详解
2018/09/03 Javascript
JS实现的图片选择顺序切换和循环切换功能示例【测试可用】
2018/12/28 Javascript
微信小程序3D轮播实现代码
2019/09/19 Javascript
VSCode Vue开发推荐插件和VSCode快捷键(小结)
2020/08/08 Javascript
python实现斐波那契递归函数的方法
2014/09/08 Python
Python中几种操作字符串的方法的介绍
2015/04/09 Python
python实现读取命令行参数的方法
2015/05/22 Python
python使用Image处理图片常用技巧分析
2015/06/01 Python
详解Python3中字符串中的数字提取方法
2017/01/14 Python
Python高级用法总结
2018/05/26 Python
可能是最全面的 Python 字符串拼接总结【收藏】
2018/07/09 Python
python登录WeChat 实现自动回复实例详解
2019/05/28 Python
Python使用itchat 功能分析微信好友性别和位置
2019/08/05 Python
详解python 利用echarts画地图(热力图)(世界地图,省市地图,区县地图)
2019/08/06 Python
Python 实现将大图切片成小图,将小图组合成大图的例子
2020/03/14 Python
mac 上配置Pycharm连接远程服务器并实现使用远程服务器Python解释器的方法
2020/03/19 Python
利用python下载scihub成文献为PDF操作
2020/07/09 Python
AVON雅芳官网:世界上最大的美容化妆品公司之一
2016/11/02 全球购物
接口的多继承会带来哪些问题
2015/08/17 面试题
最新结婚典礼主持词
2014/03/14 职场文书
俞敏洪北大演讲稿
2014/05/22 职场文书
人力资源职位说明书
2014/07/29 职场文书
如何撰写促销方案?
2019/07/05 职场文书