[DOM Event Learning] Section 2 概念梳理 什么是事件 DOM Event

事件

  事件(Event)是用来通知代码,一些有趣的事情发生了.
  每一个Event都会被一个Event对象所表示,这个对象可能还会有一些自定义的字段或者方法,来获取发生什么事情的更多信息.
  Event对象实现了Event接口(https://developer.mozilla.org/en-US/docs/Web/API/Event).
 
  事件可以是任何事情,从最基本的用户交互,到rendering model中自动发生的一些事情.
  有一些官方规范中的标准事件,也有一些特定浏览器使用的内部事件.
  各种事件可以参考: https://developer.mozilla.org/en-US/docs/Web/Events
 

事件处理器

  要在某个对象发生某个事件(比如一个a标签被点击)的时候得到通知,可以为这个对象的这个事件指定一个event handler.
  指定方法:
  1.用元素名为on{eventtype}的HTML属性, 比如:
<button onclick="return handleClick(event);">

  2.用JavaScript选取元素,设置对应的onXXX属性,比如:
document.getElementById("mybutton").onclick = function(event) { ... }.

  更现代的浏览器可以用addEventListener()方法: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener
  但是这个方法不兼容IE9之前的浏览器.
  如果用jQuery来注册监听,框架会帮我们处理浏览器的兼容性问题.
  具体的各种注册监听的方式, 上一篇博文中有总结:http://www.cnblogs.com/mengdd/p/4354339.html
 
  Event handler可以设置在HTML元素上,也可以设置在其他产生事件的对象上,比如window, document, XMLHttpRequest等.
  因为历史原因,一些<body>和<frameset>上的属性实际是在它们的Window对象上设置event handler.
  比如:onblur, onerror, onfocus, onload, onscroll.
 

事件对象

  在时间被触发的时候,回调方法接收一个事件对象作为参数.
  这样你在处理的时候,可以知道当前是什么事件(type), 它的target, 以及相关的事件参数.
  Event是一个接口, 它有一些公共的属性和方法.
  各种具体的事件接口(比如MouseEvent, KeyboardEvent)都是Event的子类.
 
  事件属性列表: https://developer.mozilla.org/en-US/docs/Web/API/Event#Properties
 
  事件对象的方法中:
  event.stopPropagation() 会阻止当前事件的进一步传播.
  event.preventDefault() 会取消可以取消的事件, 但是不阻止事件的进一步传播.
  preventDefault()用来阻止一些默认的行为发生.
 
 

参考资料:

  W3C Doc: https://dvcs.w3.org/hg/dom3events/raw-file/tip/html/DOM3-Events.html
  Event Developer Guide: https://developer.mozilla.org/en-US/docs/Web/Guide/Events
  learn jQuery Events: http://learn.jquery.com/events/
  Mozilla Event reference: https://developer.mozilla.org/en-US/docs/Web/Events
  Event Handler: https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Event_handlers
 
 

  博客文章:http://chajn.org/project/javascript-events-responding-user/

转载于:https://www.cnblogs.com/liu-Gray/p/4810186.html

[DOM Event Learning] Section 2 概念梳理 什么是事件 DOM Event相关推荐

  1. JS 进阶: 深入理解键盘事件 Keyboard Event

    JS 进阶: 深入理解键盘事件 Keyboard Event 文章目录 JS 进阶: 深入理解键盘事件 Keyboard Event 正文 1. 基础 API 2. 基础事件:keydown.keyu ...

  2. html dom概念,js学习之HTML DOM的一些基础概念

    经过近一个星期,总算把w3chool上的HTML DOM的实例差不多看了一遍,因为本身对其中的很多都用过,所以看起来也很快,现在就再系统的回顾下HTML DOM的一些概念和基础的东西,大部分都是从w3 ...

  3. 【李宏毅】元学习(Meta learning)的概念与步骤

    [李宏毅]元学习(Meta learning)的概念与步骤 1 概念 2 元学习步骤 2.1 定义一组学习算法 2.2 评价一个学习算法 F F F 的好坏 只讲了元学习概念和步骤,简单做了解,稍微复 ...

  4. 嵌入式技术(单片机原理)基本概念梳理(保研/考研面试)

    嵌入式技术基础(单片机原理),常见概念及知识点整理(保研面试用). 目录 第1章 概论 第2章 MCS-51系列单片机的资源配置 第3章 MCS-51系列单片机的指令系统及汇编语言程序设计 第4章 单 ...

  5. HDMI EDID概念梳理

    EDID概念梳理: EDID数据格式: EDID包含两个部分,基本的EDID只有128个字节,还有128字节的扩展EDID,扩展部分不是必须有的.那通常电视都有扩展EDID.那EDID的详细定义在规范 ...

  6. 自动控制原理概念梳理(保研面试用)

    自控上下两册,常见概念及知识点整理(保研面试用). 目录 第1章 自动控制系统的一般概念 第2章 控制系统的数学模型 第3章 控制系统的时域分析 第4章 控制系统的根轨迹分析法 第5章 控制系统的频域 ...

  7. 【编译原理】期末 龙书概念梳理+做题方法(混子保过指南+学霸提分秘籍)

    编译原理期末总结 龙书概念梳理+做题方法 目录 编译原理期末总结 龙书概念梳理+做题方法 编译概述 1 编译过程 2 编译&解释 3 GCC的处理过程 词法分析 1 词法分析的任务 2 词法分 ...

  8. 微机原理概念梳理(考研/保研面试)

    微型计算机原理,常见概念及知识点整理(保研面试用). 目录 第1章 微型计算机基础 第2章 Intel系类微处理器 第3章 80486微处理器的指令系统 第4章 汇编语言程序设计 第5章 存储系统 第 ...

  9. 【操作系统】一级页表与二级页表概念梳理

    马上期末考试,我才发现我对于页表的概念有一些误解.通过网上的查询与自己的理解,手写下面的概念梳理,希望能对后来者有所帮助. 如果有哪些部分是错误的,还请大佬斧正!感谢

最新文章

  1. mysql数据库木马查杀_Linux系统木马后门查杀方法详解
  2. arch linux网络配置,关于archlinux网络的 配置
  3. boost::gil::detail::is_channel_integral用法的测试程序
  4. 牛客题霸 [ 最长公共前缀] C++题解/答案
  5. 在JSP页面中输出JSON格式数据
  6. centos7与centos6区别
  7. 基于概率的项目相似度之并行方法
  8. Mysql的日期查询方法
  9. Fence Repair (poj3253)
  10. 禅道 mysql 远程连接_远程访问禅道开源版数据库(基于docker)
  11. JavaScript之函数实例属性和类属性
  12. 考研408(操作系统、计算机组成原理、数据结构、计算机网络)
  13. linux安装水星网卡驱动,centos7.5 安装无线网卡驱动
  14. 新元宇宙奇科幻小说原创作品每周连载地球人奇游天球记第八回邂逅嫦娥
  15. python stdin stdout_Python子进程:给出stdin,读取stdout,然后给出更多stdin
  16. Rod-cutting(动态规划)
  17. vue自定义html模板,vue中自定义html文件的模板
  18. Fanuc机器人配置伺服焊枪完整步骤
  19. 美国国土安全部:Log4j 漏洞的影响将持续十年或更久
  20. 怎么登录163vip邮箱?163vip邮箱登录方式有哪些?

热门文章

  1. 服务器的图片无法显示,服务器的图片无法显示
  2. java thrift client_使用thrift的java client调用python server
  3. python360百科_python抓取360百科踩过的坑!
  4. python3 安装pyinstaller_python3.7 打包(.exe)神器——pyinstaller 安装及用法
  5. oracle u4e00 u9fa5,oracle中文与数字正则实例代码
  6. 开发商微信选房后不退认筹金_网曝!青岛恒大文化旅游城1400余名购房者欲退认筹金,开发商表示.........
  7. Azkaban通过API动态传递参数
  8. 普通爬虫有啥意思,我写了个通用Scrapy爬虫
  9. 一文理清面向对象(封装、继承、多态)+ 实战案例
  10. java的reflection机制_Java的Reflection机制