commonJS — 事件处理(for Event)
for Event
github: https://github.com/laixiangran/commonJS/blob/master/src/forEvent.js
代码
(function(window, undefined) {
var com = window.COM = window.COM || {};
com.$E = {
// 添加事件
addEvent: 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;
}
},
// 移除事件处理程序
removeEvent: 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;
}
},
// 获取对event对象的引用
getEvent: function(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; // IE
}
},
// 阻止事件流(由于IE不支持事件捕获,该方法只能阻止事件冒泡)
stopPropagation: function(event) {
if (event.stopPropagation) {
event.stopPropagation();
} else {
event.cancelBubble = true; // IE
}
},
// 获取事件相关元素
getRelatedTarget: function(event) {
if (event.relatedTarget) {
return event.relatedTarget;
} else if (event.toElement) { // IE下的mouseout事件
return event.toElement;
} else if (event.fromElement) { // IE下的mouseover事件
return event.fromElement;
} else {
return null;
}
},
// 获取鼠标按钮值(0:主鼠标按钮(一般是鼠标左键),1:中间的鼠标按钮(鼠标滚轮按钮),2:次鼠标按钮(一般是鼠标右键))
getButton: function(event) {
// 检测是否支持DOM版鼠标事件
if (document.implementation.hasFeature("MouseEvents", "2.0")) {
return event.button;
} else { // IE
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;
}
}
},
// 获取鼠标滚轮增量值
getWheelDelta: function(event) {
// 当向前滚动鼠标滚轮时,wheelDelta是120的倍数;当向后滚动鼠标滚轮时,wheelDelta是-120的倍数
if (event.wheelDelta){
// Opera 9.5之前的版本中,wheelDelta值的正负号是颠倒的,则这里需要使用浏览器检测技术来确定实际的值
return (com.$B.engine.opera && com.$B.engine.opera < 9.5 ?
-event.wheelDelta : event.wheelDelta);
} else { // Firefox下,有关鼠标滚轮的信息则保存在detail属性中,当向前滚动鼠标滚轮时,这个属性的值是-3的倍数,当向后滚动鼠标滚轮时,这个属性的值是3的倍数
return -event.detail * 40;
}
},
// 获取键盘事件中的字符ASCII编码
getCharCode: function(event) {
if (typeof event.charCode == "number") {
return event.charCode;
} else {
return event.keyCode; // IE8及之前版本和Opera
}
},
// 获取剪贴板内容
getClipboardText: function(event) {
var clipboardData = (event.clipboardData || window.clipboardData);
// clipboardData.getData()用于从剪贴板中取得数据,它接受一个参数,即要取得的数据的格式
// 在IE中,有两种数据格式:"text"和"URL"
// 在Firefox、Safari和Chrome中,这个参数是一种MIME类型;不过,可以用"text"代表"text/plain"
return clipboardData.getData("text");
},
// 设置剪切板内容,设置成功返回true
setClipboardText: function(event, value) {
if (event.clipboardData) {
// 由于Safari和Chrome的clipboardData.setData()方法不能识别"text"类型,则这里只能写"text/plain"
return event.clipboardData.setData("text/plain", value);
} else if (window.clipboardData) {
return window.clipboardData.setData("text", value);
}
}
}
}(window));
commonJS — 事件处理(for Event)的更多相关文章
- 简单的事件处理类Event
class Event{ constructor(){ this.handlers=[] } on(type,fn){ //订阅事件 if(!this.handlers[type]){ this.ha ...
- OpenGL的GLUT事件处理(Event Processing)窗口管理(Window Management)函数[转]
GLUT事件处理(Event Processing)窗口管理(Window Management)函数 void glutMainLoop(void) 让glut程序进入事件循环.在一个glut程序中 ...
- 译:DOM2中的高级事件处理(转)
17.2. DOM2中的高级事件处理(Advanced Event Handling with DOM Level 2) 译自:JavaScript: The Definitive Gu ...
- webkit事件处理
1,概述 原文地址:http://blog.csdn.net/awebkit/article/details/8493716 浏览器处理事件一般有两个过程,捕获过程和冒泡过程,这是由addEventL ...
- An Overview of Complex Event Processing
An Overview of Complex Event Processing 复杂事件处理技术概览(一) 翻译前言:我在理解复杂事件处理(CEP)方面一直有这样的困惑--为什么这种计算模式是有效的, ...
- 关于JavaScript的事件处理一些知识
<JS事件处理> Event对象详细信息:http://www.w3school.com.cn/jsref/dom_obj_event.asp JS原生支持3中绑定事件方式: 1.以标签属 ...
- 在SAP CRM WebClient UI中用javascript触发ABAP event
环境:SAP CRM WebClient UI 需求:在WebClient UI里不通过用户手动点击,而是使用JavaScript代码自动触发ABAP后台的代码. 解决方案: 1. 定义一个hidde ...
- Qt事件与常用事件处理、过滤
转载: https://blog.csdn.net/apollon_krj/article/category/6939539 https://blog.csdn.net/qq_41072190/art ...
- 十分钟玩转 jQuery、实例大全
一.简介 定义 jQuery创始人是美国John Resig,是优秀的Javascript框架: jQuery是一个轻量级.快速简洁的javaScript库.源码戳这 jQuery对象 jQuery产 ...
随机推荐
- 递归,动态规划,找最短路径,Help Jimmy
题目链接:http://poj.org/problem?id=1661 解题报告: 1.老鼠每次来到一块木板上都只有两条路可以走,可以使用递归 #include <stdio.h> #in ...
- android post请求
参考文章:http://blog.csdn.net/lotusyangjun/article/details/22292445 http://blog.csdn.net/withiter/articl ...
- 多条件查询(php+mysql) 租房子例子
<body> <?php //多条件 $tiaojian2= " 2=2 "; $attr2 = ""; //判断区域 if(!empty($ ...
- asp.net MVC webservice 报次错解决方法
asp.net MVC webservice 报次错解决方法: 解决方法: 在 RouteConfig.cs public static void RegisterRoutes(RouteCol ...
- HDU 2817 A sequence of numbers 整数快速幂
A sequence of numbers Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Ot ...
- iOS framework
(一),lipo 命令 1)合并文件: lipo -create xxxX/liblibsql.a xxxx/liblibsql.a -output libsql.a 2)查看Framework 对C ...
- Android Studio中有用的快捷键栏
Android Studio中有用的快捷键栏#1 Ahraewi线移动 Alt + Shift +向上/向下❖Alt + Shift +向上/向下 或上下移动在所选位置的行. 删除行 CMD + B ...
- CUBRID学习笔记 36 在net中添加多行记录
using System.Data.Common; using CUBRID.Data.CUBRIDClient; namespace Sample { class Add_MultipleRows ...
- iOS案例:读取指定目录下的文件列表
// // main.m // 读取指定目录下的文件列表 // // Created by Apple on 15/11/24. // Copyright © 2015年 Apple. All rig ...
- SynchronizationContext的研究之一(非WPF及Forms)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...