浏览器事件机制

一、概述

浏览器事件流存在三个阶段:捕获阶段、目标阶段、冒泡阶段,捕获和冒泡是事件传播的两种截然相反的方式。

二、什么是捕获和冒泡

见以下例子:

<div class="parent">
    <div class="child"></div>
  </div>

此结构中,点击子元素:
  捕获机制中,事件从document一直向点击的元素传播,直到被点击元素。
  冒泡机制中,事件从被点击元素逐层向其父元素传播,直到根节点。
 简单的说,捕获机制由外向内传播,冒泡机制由内向外传播。

三、事件绑定

 传统绑定方法:onclick,使用的是冒泡机制,并且一个事件只能绑定一个函数(如需执行多个函数,可在外层函数内定义多个函数)
 非IE中用addEventListener(eventName,callback,isCapturing)绑定事件,IE8以下不支持此方法,最后的isCapturing参数true表示采用捕获机制,false表示采用冒泡机制,不写第三个参数默认为false,即默认采用冒泡机制,可以为一个事件绑定多个响应函数。
 由于IE8以下不支持addEventListener,事件绑定采用IE自有的attachEvent(eventName,callback),可以看到此函数无第三参数,无法指定事件处理机制,默认使用捕获机制处理。值得注意的是,自IE11起已不支持此方法,应当使用W3C标准规定的addEventListener方法。

1.基础回顾-浏览器事件机制
2.JavaScript 详说事件机制之冒泡、捕获、传播、委托
3.javascript事件机制详解

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 浏览器事件机制(即冒泡和捕获,也称为事件流) 基础知识 操作系统最先知道用户点击了鼠标,浏览器次之 child 被...
    马建阳阅读 498评论 0 1
  • 以下文章为转载,对理解JavaScript中的事件处理机制很有帮助,浅显易懂,特分享于此。 什么是事件? 事件(E...
    jxyjxy阅读 3,075评论 1 10
  • 1. 事件冒泡与事件捕获 事件冒泡和事件捕获分别由微软和网景公司提出,这两个概念都是为了解决页面中事件流(事件发生...
    cbw100阅读 2,751评论 0 8
  • 1.何谓事件 用户和网页交互时的行为,动作,称之为事件; 2.监视事件 现实生活中,为了监视车辆是否违章,通过在红...
    草鞋弟阅读 643评论 0 0
  • 我的合伙人自己有个专为开票的户头,前几天税务局打电话让她申报,她懒得要命,每次都是让我帮她开票报税验旧换票什么的。...
    赤脚哥阅读 164评论 0 0