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

 

事件

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

事件处理器

  要在某个对象发生某个事件(比如一个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. [DOM Event Learning] Section 4 事件分发和DOM事件流

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

  2. [DOM Event Learning] Section 3 jQuery事件处理基础 on(), off()和one()方法使用

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

  3. [DOM Event Learning] Section 1 DOM Event 处理器绑定的几种方法

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

  4. 一文梳理JavaScript 事件循环(Event Loop)

    事件循环(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. OpenCASCADE BRepTools

    OpenCASCADE BRepTools eryar@163.com Abstract. OpenCASCADE BRepTools provides utilities for BRep data ...

  2. dev c++ Boost库的安装

    dev c++ 的boost库的安装步骤 然后点击“check for updates”按钮 最后点击“Download selected”按钮,下载完成后安装.... 给dev添加boost库文件, ...

  3. 创建第二个 vlan network "vlan101" - 每天5分钟玩转 OpenStack(96)

    前面我们创建了 vlan100,并部署了 instance,今天将继续创建第二个 vlan network "vlan101". subnet IP 地址为 172.16.101. ...

  4. 【Java心得总结二】浅谈Java中的异常

    作为一个面向对象编程的程序员对于 下面的一句一定非常熟悉: try { // 代码块 } catch(Exception e) { // 异常处理 } finally { // 清理工作 } 就是面向 ...

  5. Hadoop入门学习笔记---part2

    在<Hadoop入门学习笔记---part1>中感觉自己虽然总结的比较详细,但是始终感觉有点凌乱.不够系统化,不够简洁.经过自己的推敲和总结,现在在此处概括性的总结一下,认为在准备搭建ha ...

  6. 浅谈2D游戏设计模式--游戏剧情设计(1)

    博主不才,人生有2大爱好,写程序和玩游戏,本人玩的又是一款2D的在旁人看来弱智的网络游戏. 这款游戏在中国的名称叫做冒险岛,不知道园子里有没有人玩过. 我打算有空的话,就把我玩游戏中的心得和程序结合起 ...

  7. 跟我学PHP第二篇- 配置Mysql以及PHP WampServer篇(1)

    大家好,昨天我给大家介绍了如何去安装ZEND STUDIO,下面昨天文章的链接: http://www.cnblogs.com/kmsfan/p/zendStudio.html 本节为配置的第一部分, ...

  8. 关于 window.parent, window.top, window.self 详解

    在应用有frameset或者iframe的页面时,parent是父窗口,top是最顶级父窗口(有的窗口中套了好几层frameset或者iframe),self是当前窗口,opener是用open方法打 ...

  9. Redis 详解 (一) StackExchange.Redis Client

    这期我们来看StackExchange.Redis,这是redis 的.net客户端之一.Redis是一个开源的内存数据存储,可以用来做数据库,缓存或者消息代理服务.目前有不少人在使用ServiceS ...

  10. 【电脑常识】如何查看电脑是32位(X86)还是64位(X64),如何知道硬件是否支持64位系统

    开始->运行->输入cmd确定->输入systeminfo 回车 待加载完成,就会看到如下信息(不同版本略有差异): 一.如何查看电脑是32位(X86)还是64位(X64) 方法2: ...