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

时间:2021-08-18 00:00:27

[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的子类.
 
 
  事件对象的方法中:
  event.stopPropagation() 会阻止当前事件的进一步传播.
  event.preventDefault() 会取消可以取消的事件, 但是不阻止事件的进一步传播.
  preventDefault()用来阻止一些默认的行为发生.
 
 

参考资料:

  learn jQuery Events: http://learn.jquery.com/events/
 
 

[DOM Event Learning] Section 2 概念梳理 什么是事件 DOM Event的更多相关文章

  1. &lbrack;DOM Event Learning&rsqb; Section 4 事件分发和DOM事件流

    [DOM Event Learning] Section 4 事件分发和DOM事件流 事件分发机制: event dispatch mechanism. 事件流(event flow)描述了事件对象在 ...

  2. &lbrack;DOM Event Learning&rsqb; Section 3 jQuery事件处理基础 on&lpar;&rpar;&comma; off&lpar;&rpar;和one&lpar;&rpar;方法使用

    [DOM Event Learning] Section 3 jQuery事件处理基础 on(),off()和one()方法使用   jQuery提供了简单的方法来向选择器(对应页面上的元素)绑定事件 ...

  3. &lbrack;DOM Event Learning&rsqb; Section 1 DOM Event 处理器绑定的几种方法

    [DOM Event Learning] Section 1 DOM Event处理器绑定的几种方法   网页中经常需要处理各种事件,通常的做法是绑定listener对事件进行监听,当事件发生后进行一 ...

  4. 一文梳理JavaScript 事件循环&lpar;Event Loop&rpar;

    事件循环(Event Loop),是每个JS开发者都会接触到的概念,但是刚接触时可能会存在各种疑惑. 众所周知,JS是单线程的,即同一时间只能运行一个任务.一般情况下这不会引发问题,但是如果我们有一个 ...

  5. 【二】jquery之基础概念与jquery对象与dom对象的区别及混合使用

    一:jquery基本概念 1.jquery是一个javascript框架,它是一个轻量级的js库 2.当下流行的js库有: jquery MooTools Prototype 3.$(ducoment ...

  6. event driven的一些概念

    1. event :Something that happens during your application that requires a response. 2.event object:Th ...

  7. 重新审视事件对象event

    前言:之前在学习事件对象event时,一是一直在chrome浏览器(作为主运行环境)下运行调试自个儿程序,二是可能当时对事件对象理解不透彻才导致现在对事件对象的用法陷入了一个大坑,遂以此篇博客记之. ...

  8. 谈谈事件对象-event

    JavaScript 中的事件对象(event) 当我们每次触发一种事件(如点击事件),我们会在回调函数中传入事件对象event.今天就来来谈谈. 1.当我们想判断当前事件是我们想要的事件类型时,可以 ...

  9. JavaScript:事件对象Event和冒泡

    本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. 绑定事件的两种方式 我们在上一篇文章中已经讲过事件的概念.这里讲一下注册 ...

随机推荐

  1. mysql取前几行数据limit用法

    转自http://www.cnblogs.com/study100/archive/2013/07/30/3224250.html 在mysql中是没有top关键字的,在mysql中可以用limit来 ...

  2. 闭包(closure)

    闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现. 下面就是我的学习笔记,对于Javascript初学者应该是很有用的. 一.变量的作用域 要理解 ...

  3. &lbrack;原创&rsqb;java WEB学习笔记54:Struts2学习之路---概述,环境的搭建

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  4. React状态的含义和用法

    一. 二.代码 <!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset=&quo ...

  5. iOS中的谓词(NSPredicate)使用

    http://www.cocoachina.com/ios/20160111/14926.html 首先,我们需要知道何谓谓词,让我们看看官方的解释: The NSPredicate class is ...

  6. &lbrack;置顶&rsqb; ProcessOn&colon;划时代性的在线作图工具

    ProcessOn是一款专业作图人员的社交网络,这里汇聚很多业界专家.学者,同时他们分享的作品又形成一个庞大的知识图库,你在学习专业知识的同时还可以结交一些志同道合的新朋友. ProcessOn核心设 ...

  7. dom4j生成和解析xml文件

    dom4j生成和解析xml文件 要生成和解析如下格式的xml文件: <?xml version="1.0" encoding="UTF-8"?> & ...

  8. 跑马灯、短信与反射EditText

    1.1.跑马灯功能 Android自带支持跑马灯功能,实现此功能需要设置已下属性: android:ellipsize="marquee" // 必选,跑马灯样式 android: ...

  9. svn 如果遇到an unversioned directory of the same name already exists的解决办法

    svn 如果遇到an unversioned directory of the same name already exists的解决办法 一般这种情况是因为,在一个已经存在的文件夹里做SVN che ...

  10. 《javascript语言精粹》读书笔记 Item2 对象

    第三章 对象 JavaScript的简单数据类型包括数字.字符串.布尔值(true和false).null值和undefined值.其他 数字.字符串和布尔值"貌似"对象,因为它们 ...