常见跨浏览器事件的解决方法
类别:Web前端 浏览量:715
时间:2017-3-11 常见跨浏览器事件的解决方法
常见跨浏览器事件的解决方法解决常见跨浏览器事件的方法封装
var EventUtil = {
addHandler: function(element,type,handler) { //事件监听
if(element.addEventListener) {
element.addEventListener(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.removeEventListener(type,handler,false);
}else if(element.detachEvent) {
element.detachEvent("on"+type,handler);
}else {
element["on" +type] = null;
}
},
getEvent: function(event) {//获取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.cancelBubble = true;
}
},
getRelatedTarget: function(event){//返回相关元素信息(仅对于mouseover和mouseout事件)
if (event.relatedTarget){
return event.relatedTarget;
} else if (event.toElement){
return event.toElement;
} else if (event.fromElement){
return event.fromElement;
} else {
return null;
}
},
getWheelDelta: function(event) {//获取鼠标滚轮增量值,检测是否包含WheelDelta
if(event.wheelDelta) {
return event.wheelDelta;
}else {
return -event.detail * 40
}
},
getCharCode: function(event) {//获取键盘按键键码。
if(typeof event.charCode == 'number') {
return event.charCode;
}else {
return event.keyCode;
}
},
getButton:function(event){//在mouseup或者mousedown的时候,event存在一个button属性,用于判断是按了鼠标左键,右键,还是中键,0鼠标主键按钮,1是中间,2是次键(右键)
if(document.implementation.hasFeature("MouseEvents","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;
}
}
}
};
标签:javascript
您可能感兴趣
- js闭包可以解决哪些问题(JavaScript中let避免闭包造成问题)
- javascript检测内容改变了(JavaScript 检测文件的类型的方法)
- javascript动作事件有哪些(JavaScript之事件循环案例讲解)
- JavaScript 常用的开发规范
- javascript编写的小游戏(CSS3 实现NES游戏机的示例代码)
- js搜索功能的实现(前端JavaScript实现本地模糊搜索功能的方法实例)
- javascript中求二维数组最小值(javascript实现数组最大值和最小值的6种方法)
- js的模块模式设计(如何理解JavaScript模块化)
- qt和js相互调用(QT与javascript交互数据的实现)
- 微信小程序抽签如何抽中(JavaScript实现班级抽签小程序)
- js回调函数原理(关于JavaScript回调函数的深入理解)
- javascript 自带格式化时间(JavaScript内置日期、时间格式化时间实例代码)
- javascript四种数组(javascript数组includes、reduce的基本使用)
- 在vs中设置Javascript的智能提示
- javascript页面滚动窗口(javascript实现简单滚动窗口)
- javascript数组实例扩展方法(JavaScript如何监测数组的变化)
- 王治郅菜鸟赛季已让八一带入正轨,大郅七大经典语录或是成功秘诀(王治郅菜鸟赛季已让八一带入正轨)
- 庆八一,重读经典红色语录,感悟互联网发展硬道理(重读经典红色语录)
- TVB新剧《黯夜守护者》将播,陈展鹏陈炜首次合作探讨人性(TVB新剧黯夜守护者将播)
- 新晋小花被称女版吴卓羲 将取代滕丽名成为TVB新一代御用女警(新晋小花被称女版吴卓羲)
- 艺人吴卓羲10年警察生涯,演足10年阿Sir,系咩玩法(艺人吴卓羲10年警察生涯)
- 菲律宾潜水(菲律宾潜水价格)
热门推荐
- 修改mysql安装服务名称(Apache为mysql以及自己的项目设置虚拟路径)
- 前端用图片隐藏请求接口(前端实现打印图像功能)
- 搭建php和mysql的运行环境(Windows环境开发PHP完整配置教程Apache+Mysql+PHP)
- 网页颜色的选择
- layui触碰提示框(layui禁用侧边导航栏点击事件的处理方法)
- blazor客户端访问串口(Blazor Server 应用程序中进行 HTTP 请求)
- php7.4 废弃功能(浅析PHP7 的垃圾回收机制)
- dedecms操作手册(织梦DEDECMS结构化数据Meta申明标签)
- mysql冷热数据分离方案(MySQL中使用流式查询避免数据OOM)
- 如何找到某个HTML元素所绑定的事件
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9