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){return event ? event : window.event;},//获取事件名称getTarget: function(event){return event.target || event.srcElement;},//获取鼠标键getButton: function(event){//DOM2中检测是否有MouseEvents模块if (document.implementation.hasFeature("MouseEvents", "2.0")){return event.button;// var k = event.button;//     switch(k){//         case 0://             return "0:表示左键";//         case 1://             return "1:表示中键";//         case 2://             return "2:表示右键";//     }//IE6,7,8  左键:1,中键:4,右键:2;//Chrome,FF,IE9+   左键:0,中键:1,右键:2;} else {switch(event.button){   //IE下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;}},/*event对象的relatedTarget属性提供了相关元素的信息,这个属性只对于mouseover和mouseout事件才包含值;*对于其他事件,这个属性的值是null。*IE不支持relatedTarget属性,但提供了保存着同样信息的不同属性。*在mouseover事件触发时,IE的fromElement属性中保存率相关元素;*在mouseout事件触发时,IE的toElement属性中保存着相关元素。*/getRelatedTarget: function(event){if (event.relatedTarget){return event.relatedTarget;} else if (event.toElement){return event.toElement;} else if (event.fromElement){return event.fromElement;} else {return null;}},//获取鼠标滚轮mousewheel事件getWheelDelta: function(event){if (event.wheelDelta){return (client.engine.opera && client.engine.opera < 9.5 ? -event.wheelDelta : event.wheelDelta);} else {return -event.detail * 40;}},//取消事件的默认行为,如果cancelable是true,则可以使用这个方法;//如:点击超链接时阻止其访问herf属性实现跳转preventDefault: function(event){if (event.preventDefault){event.preventDefault();} else {event.returnValue = false;}},//取消事件的进一步捕获或冒泡。如果bubbles为true则可以使用这个方法;stopPropagation: function(event){if (event.stopPropagation){event.stopPropagation();} else {event.cancelBubble = true;}},//获取剪切板文本getClipboardText: function(event){var clipboardData =  (event.clipboardData || window.clipboardData);return clipboardData.getData("text");},//设置剪切板文本setClipboardText: function(event, value){if (event.clipboardData){event.clipboardData.setData("text/plain", value);} else if (window.clipboardData){window.clipboardData.setData("text", value);}}};

转载于:https://www.cnblogs.com/sdream/p/5691170.html

JavaScript事件基础知识总结【思维导图】相关推荐

  1. < JavaScript基础知识 之 思维导图 >

    文章目录 前言 一.Javascript变量 二.Javascript运算符 三.Javascript数组 四.Javascript流程语句 五.Javascript字符串函数 六.Javascrip ...

  2. java类与接口思维导图_详解java接口基础知识附思维导图

    接口: 官方的含义是---->java接口是一系列方法的声明,是一些方法特征的集合 疑问: 那为什么不用抽象类呢?把他们共有的方法集合起来放在一个抽象类里面,同样可以调用哇,但是反过来想一想如果 ...

  3. 散列基础知识总结(思维导图)

  4. JavaScript的基础类型的思维导图

  5. CSS 速复习(基础知识) (思维导图App: Xmind)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/qq_43900956/article/ ...

  6. 软件测试基础知识(思维导图)

    1.一些问题 2.一些概念 3.测试用例 4.测试管理 5.什么是bug 6.测试分类 7.测试手段 要获取全部资源,关注作者微信公众号;程序员二黑,即可获得全部资源! 如果您觉得文章还不错,请 点赞 ...

  7. Python基础知识的思维导图

    欢迎喜欢数据分析的小伙伴可以关注一下微信公众号,公众号里面主要介绍各种数据分析技能

  8. 多元函数概念思维导图_高等数学 多元函数微分学 知识技巧思维导图 [21考研上岸之旅]...

    Hello World,我的朋友,这里是一颗小白蛋,大千世界,很高兴以这样的方式与你相遇 前言 好久不见,这一次给大家带来考研高数的中多元函数微分学的相关内容. 2021张宇基础30讲 +2020汤家 ...

  9. 个人知识体系思维导图_“知识体系”打得好,学霸孩子跑不了,巧用“思维导图”来帮忙...

    文章纯属原创,版权归本作者所有,欢迎个人转发分享. 相信很多妈妈都会看见孩子学习学不进去的苦恼,孩子看着很用功,每天按时完成作业.做练习题,但是成绩就是一直上不去,还会出现成绩不升反降的情况.这成了许 ...

  10. python课程思维导图_零基础Python学习思维导图,记得收藏

    原标题:零基础Python学习思维导图,记得收藏 本文主要涵盖了 Python 编程的核心知识(暂不包括标准库及第三方库). 1.按顺序依次展示了以下内容的一系列思维导图:基础知识,数据类型(数字,字 ...

最新文章

  1. 时间序列预测---差分自回归移动平均模型(ARIMA模型)
  2. android sync manager wifi pc,Android SyncManager 实现
  3. Python中json模块的使用,以及json.loads()和json.dumps()的区别
  4. python调用ffmpeg合并_用ffmpeg命令处理mp4剪切与合并
  5. 当一个变量只能通过引用传递的时候。
  6. linux下的进程间通信-管道及共享内存
  7. jar命令指定入口类
  8. jQuery easyui中combox 自定义样式 去掉下拉框的空白
  9. Unity使用自定义资源(.asset)配置数据
  10. SQL to ElasticSearch DSL改进
  11. sqlserver中分区函数 partition by的用法
  12. Landsat 数据下载与预处理
  13. 慕课网仿去哪儿项目笔记--(一)-初始化准备
  14. android p cts camera测试 android.hardware.camera2.cts.CaptureRequestTest#testEdgeModeControl fail
  15. 要重复多少次变成潜意识_速读记忆相关:量变到质变,首先要做的是不断重复...
  16. Python 新手入门引导。
  17. 西安交大计算机学院 栾佳锡,史椸-西安交通大学-自动化科学与工程学院
  18. `Error:(11) No resource identifier found for attribute 'srcCompat' in package 'com.codifythings.ligh
  19. 【图像处理matlab】PCA+KNN人脸识别 ORL人脸数据集
  20. 微信小程序把view居中_初识微信小程序

热门文章

  1. varnish构建高速缓存
  2. 页面每次添加都显示最后一次访问记录spring scope=prototype 学习笔记
  3. 硬盘数据恢复入门教程
  4. ASP.NET2.0应用中定制安全凭证之理论篇
  5. 网络编程之-----------进程
  6. php 默认是几进制数,以0x开头的是多少进制?
  7. java 生产者消费者同步_经典线程同步问题(生产者消费者)--Java实现
  8. linux5 syscall 流程_Linux的上的程序是如何运行的,api机制是怎么样?
  9. devsecops_DevSecOps管道和工具:您需要了解的内容
  10. 2019年python黑马_决心在2019年让Python成为您的朋友