var EventUtil = {
/*
*添加事件处理 参数:元素对象 事件类型 处理函数
*/
addHandle: function (element, type, handle) {
//dom2级的事件添加
if (element.addEventListener) {
element.addEventListener(type, handle, false);
} else {
//IE 的事件添加
if (element.attachEvent) {
element.attachEvent('on' + type, handle);
} else {
//给元素特性赋值
element['on' + type] = handle;
}
} },
/*
*移除事件处理 参数:元素对象 事件类型 处理函数
*/
removeHandle: function (element, type, handle) {
//dom2级的事件移除
if (element.removeEventListener) {
element.removeEventListener(type, handle, false);
} else {
//IE的事件移除
if (element.detachEvent) {
element.detachEvent('on' + type, handle);
} else {
//给元素特性赋值为空对象以移除事件
element['on' + type] = null;
}
}
},
//获得event对象 IE中以参数event对象传入 Dom中通过window.event来访问
getEvent: function (event) {
return event ? event : window.event;
},
//获得事件的目标 dom中通过event.target获得 IE中通过event.srcElement
getTarget: function (event) {
return event.target || event.srcElement;
},
//取消事件的默认行为
preventDefault: function (event) {
if (event.preventDefault) {
//Dom 方法
event.preventDefault();
} else {
//设置IE event.returnValue = false
event.returnValue = false;
}
},
//停止事件冒泡
stopPropagation: function (event) {
//Dom 方法
if (event.stopPropagation) {
event.stopPropagation();
} else {
event.cancelBubble = true;;
}
},
//获得相关目标对象
getRelatedTarget: function (event) {
//Dom 方法 relatedTarget只对mouseover和mouseout事件才包含值 否则 这个值为null
if (event.relatedTarget) {
return event.relatedTarget;
} else {
//IE
if (event.toElement) {
return event.toElement;
} else {
if (event.fromElement) {
return event.fromElement;
} else {
return null;
}
}
}
},
//获得鼠标按键 0表示左键 1表示中间轮 2表示右键
getButton: function (event) {
//是否支持Dom鼠标事件
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;
}
}
},
//获得字符编码
getCharCode: function (event) {
if (typeof event.charCode == 'number') {
return event.charCode;
} else {
return event.keyCode;
}
}
};

公共事件处理函数js库的更多相关文章

  1. js中关于事件处理函数名后面是否带括号的问题

    今天总结一个关于事件处理程序的小细节.首先回顾一下事件处理的一些概念. JS中的事件处理(事件绑定)就是让某种或某些事件触发某些活动.有两种常见的形式,分别是DOM Level 0 和DOM Leve ...

  2. JS绑定事件处理函数及处理流程

    一.事件绑定的几种方式: 1.1 ele.on+“事件名“:如div.onclick = function(event){ }; 1.1.1这种方式兼容性非常好,但一个元素的同一个事件上只能绑定一个处 ...

  3. js跨浏览器的事件处理函数

    /* 跨浏览器的事件处理函数 */ var EventUtil = { addHandler : function(element,type,handler){ if(element.addEvent ...

  4. js 中用Dom2级事件处理函数(改变样式)

    下面这些客户端 javascript代码用到了事件,它给一个很重要的事件--“load" 事件注册了一个事件处理程序.同时展示了注册”click“事件处理函数更高级的一种方法 <!do ...

  5. js中绑定事件处理函数,使用event以及传递额外数据

    IE8中使用attachEvent绑定事件处理函数时,不能直接向event 对象添加数据属性.可以用属性复制的方法,包装新的event对象. 1. 属性复制var ObjectExtend = fun ...

  6. 仿照jquery封装一个自己的js库(一)

    所谓造轮子的好处就是复习知识点,加深对原版jquery的理解. 本文系笔者学习jquery的笔记,记述一个名为"dQuery"的初级版和缩水版jquery库的实现.主要涉及知识点包 ...

  7. jQuery总结--版本二 事件处理函数

    一:事件处理函数 (1) one(事件名称, fn) 仅对指定事件监听一次,监听事件只会执行一次 <!DOCTYPE html> <html> <head lang=&q ...

  8. 解决同一页面jQuery多个版本或和其他js库冲突方法

    <!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> ...

  9. 前端之Vue.js库的使用

    vue.js简介 Vue.js读音 /vjuː/, 类似于 view Vue.js是前端三大新框架:Angular.js.React.js.Vue.js之一,Vue.js目前的使用和关注程度在三大框架 ...

随机推荐

  1. C# 值类型和引用类型

    一.基本概念 C#只有两种数据类型:值类型和引用类型 值类型在线程栈分配空间,引用类型在托管堆分配空间 值类型转为引用类型称成为装箱,引用类型转为值类型称为拆箱 以下是值类型和引用类型对照表 从上图可 ...

  2. 天龙客户端的GameManager

    看天龙的结构,奇怪为什么这么多直接继承了MonoBehaviour,而不是自己实现一套帧频更新呢,两者利弊都在哪? 从顶层来看看GameManager的单件. 管理了当前的载入的场景(ActiveSc ...

  3. 收藏Javascript中常用的55个经典技巧

    1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键 <table border oncontextmenu ...

  4. win7远程桌面连接不上,解决办法

    来源于:http://jingyan.baidu.com/article/39810a23edc48bb637fda672.html 一般情况下,对WIN7的远程连接只需要5步即可完成远程连接的设置: ...

  5. tab切换(修改)

    html代码: <div class="tabContent"> <ul class="tab clearFix"> <li cl ...

  6. [转]关于jquery中html()、text()、val()的区别

    原文地址:http://www.cnblogs.com/xiaolifeidao/p/3715830.html .html()用为读取和修改元素的HTML标签    对应js中的innerHTML . ...

  7. [转]Filter实现处理中文乱码,转义html标签,过滤敏感词

    原文地址:http://www.cnblogs.com/xdp-gacl/p/3952405.html 在filter中可以得到代表用户请求和响应的request.response对象,因此在编程中可 ...

  8. iOS不得姐项目--图片帖子模块,大图默认显示最顶部分的处理

    一.刚开始的处理,设置Mode属性(self.pictureImageView.contentMode = UIViewContentModeScaleAspectFill;) 和 Clip Subv ...

  9. 100197C

    合并果子 每一次取最小的两个合并 答案加上这两个值 因为这是一颗二叉树,我们计算一条路的长度,可以看成从叶子节点逐渐合并,直到根 #include<iostream> #include&l ...

  10. extract()函数

    extract(),它的主要作用是将数组展开,键名作为变量名,元素值为变量值 extract($_POST);//相当于$username = $_POST['username'];//$passwo ...