for Event

github: https://github.com/laixiangran/commonJS/blob/master/src/forEvent.js

代码

  1. (function(window, undefined) {
  2. var com = window.COM = window.COM || {};
  3. com.$E = {
  4. // 添加事件
  5. addEvent: function(element, type, handler) {
  6. if (element.addEventListener) {
  7. element.addEventListener(type, handler, false);
  8. } else if (element.attachEvent) {
  9. element.attachEvent("on" + type, handler);
  10. } else {
  11. element["on" + type] = handler;
  12. }
  13. },
  14. // 移除事件处理程序
  15. removeEvent: function(element, type, handler) {
  16. if (element.removeEventListener) {
  17. element.removeEventListener(type, handler, false);
  18. } else if (element.detachEvent) {
  19. element.detachEvent("on" + type, handler);
  20. } else {
  21. element["on" + type] = null;
  22. }
  23. },
  24. // 获取对event对象的引用
  25. getEvent: function(event) {
  26. return event ? event : window.event;
  27. },
  28. // 获取事件的目标
  29. getTarget: function(event) {
  30. return event.target || event.srcElement;
  31. },
  32. // 取消事件的默认行为
  33. preventDefault: function(event) {
  34. if (event.preventDefault){
  35. event.preventDefault();
  36. } else {
  37. event.returnValue = false; // IE
  38. }
  39. },
  40. // 阻止事件流(由于IE不支持事件捕获,该方法只能阻止事件冒泡)
  41. stopPropagation: function(event) {
  42. if (event.stopPropagation) {
  43. event.stopPropagation();
  44. } else {
  45. event.cancelBubble = true; // IE
  46. }
  47. },
  48. // 获取事件相关元素
  49. getRelatedTarget: function(event) {
  50. if (event.relatedTarget) {
  51. return event.relatedTarget;
  52. } else if (event.toElement) { // IE下的mouseout事件
  53. return event.toElement;
  54. } else if (event.fromElement) { // IE下的mouseover事件
  55. return event.fromElement;
  56. } else {
  57. return null;
  58. }
  59. },
  60. // 获取鼠标按钮值(0:主鼠标按钮(一般是鼠标左键),1:中间的鼠标按钮(鼠标滚轮按钮),2:次鼠标按钮(一般是鼠标右键))
  61. getButton: function(event) {
  62. // 检测是否支持DOM版鼠标事件
  63. if (document.implementation.hasFeature("MouseEvents", "2.0")) {
  64. return event.button;
  65. } else { // IE
  66. switch (event.button) {
  67. case 0:
  68. case 1:
  69. case 3:
  70. case 5:
  71. case 7:
  72. return 0;
  73. case 2:
  74. case 6:
  75. return 2;
  76. case 4:
  77. return 1;
  78. }
  79. }
  80. },
  81. // 获取鼠标滚轮增量值
  82. getWheelDelta: function(event) {
  83. // 当向前滚动鼠标滚轮时,wheelDelta是120的倍数;当向后滚动鼠标滚轮时,wheelDelta是-120的倍数
  84. if (event.wheelDelta){
  85. // Opera 9.5之前的版本中,wheelDelta值的正负号是颠倒的,则这里需要使用浏览器检测技术来确定实际的值
  86. return (com.$B.engine.opera && com.$B.engine.opera < 9.5 ?
  87. -event.wheelDelta : event.wheelDelta);
  88. } else { // Firefox下,有关鼠标滚轮的信息则保存在detail属性中,当向前滚动鼠标滚轮时,这个属性的值是-3的倍数,当向后滚动鼠标滚轮时,这个属性的值是3的倍数
  89. return -event.detail * 40;
  90. }
  91. },
  92. // 获取键盘事件中的字符ASCII编码
  93. getCharCode: function(event) {
  94. if (typeof event.charCode == "number") {
  95. return event.charCode;
  96. } else {
  97. return event.keyCode; // IE8及之前版本和Opera
  98. }
  99. },
  100. // 获取剪贴板内容
  101. getClipboardText: function(event) {
  102. var clipboardData = (event.clipboardData || window.clipboardData);
  103. // clipboardData.getData()用于从剪贴板中取得数据,它接受一个参数,即要取得的数据的格式
  104. // 在IE中,有两种数据格式:"text"和"URL"
  105. // 在Firefox、Safari和Chrome中,这个参数是一种MIME类型;不过,可以用"text"代表"text/plain"
  106. return clipboardData.getData("text");
  107. },
  108. // 设置剪切板内容,设置成功返回true
  109. setClipboardText: function(event, value) {
  110. if (event.clipboardData) {
  111. // 由于Safari和Chrome的clipboardData.setData()方法不能识别"text"类型,则这里只能写"text/plain"
  112. return event.clipboardData.setData("text/plain", value);
  113. } else if (window.clipboardData) {
  114. return window.clipboardData.setData("text", value);
  115. }
  116. }
  117. }
  118. }(window));

commonJS — 事件处理(for Event)的更多相关文章

  1. 简单的事件处理类Event

    class Event{ constructor(){ this.handlers=[] } on(type,fn){ //订阅事件 if(!this.handlers[type]){ this.ha ...

  2. OpenGL的GLUT事件处理(Event Processing)窗口管理(Window Management)函数[转]

    GLUT事件处理(Event Processing)窗口管理(Window Management)函数 void glutMainLoop(void) 让glut程序进入事件循环.在一个glut程序中 ...

  3. 译:DOM2中的高级事件处理(转)

    17.2. DOM2中的高级事件处理(Advanced Event Handling with DOM Level 2)        译自:JavaScript: The Definitive Gu ...

  4. webkit事件处理

    1,概述 原文地址:http://blog.csdn.net/awebkit/article/details/8493716 浏览器处理事件一般有两个过程,捕获过程和冒泡过程,这是由addEventL ...

  5. An Overview of Complex Event Processing

    An Overview of Complex Event Processing 复杂事件处理技术概览(一) 翻译前言:我在理解复杂事件处理(CEP)方面一直有这样的困惑--为什么这种计算模式是有效的, ...

  6. 关于JavaScript的事件处理一些知识

    <JS事件处理> Event对象详细信息:http://www.w3school.com.cn/jsref/dom_obj_event.asp JS原生支持3中绑定事件方式: 1.以标签属 ...

  7. 在SAP CRM WebClient UI中用javascript触发ABAP event

    环境:SAP CRM WebClient UI 需求:在WebClient UI里不通过用户手动点击,而是使用JavaScript代码自动触发ABAP后台的代码. 解决方案: 1. 定义一个hidde ...

  8. Qt事件与常用事件处理、过滤

    转载: https://blog.csdn.net/apollon_krj/article/category/6939539 https://blog.csdn.net/qq_41072190/art ...

  9. 十分钟玩转 jQuery、实例大全

    一.简介 定义 jQuery创始人是美国John Resig,是优秀的Javascript框架: jQuery是一个轻量级.快速简洁的javaScript库.源码戳这 jQuery对象 jQuery产 ...

随机推荐

  1. 递归,动态规划,找最短路径,Help Jimmy

    题目链接:http://poj.org/problem?id=1661 解题报告: 1.老鼠每次来到一块木板上都只有两条路可以走,可以使用递归 #include <stdio.h> #in ...

  2. android post请求

    参考文章:http://blog.csdn.net/lotusyangjun/article/details/22292445 http://blog.csdn.net/withiter/articl ...

  3. 多条件查询(php+mysql) 租房子例子

    <body> <?php //多条件 $tiaojian2= " 2=2 "; $attr2 = ""; //判断区域 if(!empty($ ...

  4. asp.net MVC webservice 报次错解决方法

    asp.net  MVC  webservice  报次错解决方法: 解决方法: 在 RouteConfig.cs public static void RegisterRoutes(RouteCol ...

  5. HDU 2817 A sequence of numbers 整数快速幂

    A sequence of numbers Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Ot ...

  6. iOS framework

    (一),lipo 命令 1)合并文件: lipo -create xxxX/liblibsql.a xxxx/liblibsql.a -output libsql.a 2)查看Framework 对C ...

  7. Android Studio中有用的快捷键栏

    Android Studio中有用的快捷键栏#1 Ahraewi线移动 Alt + Shift +向上/向下❖Alt + Shift +向上/向下 或上下移动在所选位置的行. 删除行 CMD + B ...

  8. CUBRID学习笔记 36 在net中添加多行记录

    using System.Data.Common; using CUBRID.Data.CUBRIDClient; namespace Sample { class Add_MultipleRows ...

  9. iOS案例:读取指定目录下的文件列表

    // // main.m // 读取指定目录下的文件列表 // // Created by Apple on 15/11/24. // Copyright © 2015年 Apple. All rig ...

  10. SynchronizationContext的研究之一(非WPF及Forms)

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...