常见跨浏览器事件的解决方法
类别: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
您可能感兴趣
- Javascript计算密码的强度
- javascript弹出菜单(Javascript实现简易导航栏)
- 用javascript解析json(JavaScript JSON.stringify的使用总结)
- JavaScript实现网页版贪吃蛇游戏(JavaScript实现网页版贪吃蛇游戏)
- ASP.NET使用JavaScriptSerializer实现序列化与反序列化
- javascript文件解压(JavaScript 如何在线解压 ZIP 文件)
- javascript基本类型是哪些(详解javascript中的Strict模式)
- jupyternotebook搭建和使用(Jupyter Notebook运行JavaScript的方法)
- javascript设置鼠标(JavaScript实现鼠标控制自由移动的窗口)
- javascript如何转换int型(浅谈JavaScript中的parseInt的妙用)
- javascript如何建立一个静态变量(JavaScript中子函数访问外部变量的3种解决方法)
- redux实例教程(详解JavaScript状态容器Redux)
- javascript变量值做函数名(JavaScript中变量提升和函数提升实例详解)
- html5 canvas 特效(JavaScript canvas实现流星特效)
- js怎么做一个计时器(JavaScript实现简单计时器)
- javascript对象添加方法(详解JavaScript面向对象实战之封装拖拽对象)
- 白T恤穿法(白t恤)
- 你怎么忘了是说先爱我(你怎么忘了如何爱我)
- 做技术难吗(技术难不难)
- 林心如是谁(林心如是谁演的)
- 泰国安全吗(泰国安全吗2023)
- 菲律宾安全吗(菲律宾安全吗)
热门推荐
- sqlserver 比较日期(解析SQL Server中SQL日期转换出错的原因)
- phpdate函数使用方法(PHP中strtr与str_replace函数运行性能简单测试示例)
- thinkphp静态怎么设置(浅谈thinkphp的nginx配置,以及重写隐藏index.php入口文件方法)
- python3循环使用教程(Python3.4学习笔记之 idle 清屏扩展插件用法分析)
- class对应的css(CSS的class与id常用的命名规则)
- dedecms添加板块(织梦DedeCMS后台文件列表按文件名排序的方法简介)
- dedecms标签缩略图问题(dedecms文章内页获取缩略图的调用标签)
- for循环能有两个变量吗(关于var在for循环遇到的问题解决)
- js绘制平滑路径(如何利用Javascript生成平滑曲线详解)
- html5的canvas图形绘制技术(导出HTML5 Canvas图片并上传服务器功能)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9