首页 > 试题广场 >

网页中接收事件的顺序(事件流)有哪些?它们之间的区别是什么?

[问答题]

网页中接收事件的顺序(事件流)有哪些?它们之间的区别是什么?

事件流有三个阶段:

1. 事件捕获阶段:从 window 逐层向下传递到 目标元素,过程中遇到注册的捕获事件就会触发它
2. 处于目标阶段:事件到达目标元素,触发目标元素上注册的事件
3. 事件冒泡阶段:从目标元素向上传递到 window,过程中遇到注册的冒泡事件就会触发它
发表于 2020-03-19 20:50:25 回复(0)

首先说一下什么是事件流,个人理解为假设在牛客网做题,当我点击了提交按钮,浏览器是如何知道我点击了什么东西呢?这个时候就需要使用到事件流

最开始有两种,一个是冒泡,一个是事件捕获。

先说说冒泡:和冒泡排序一样(虽然这是个**算法),都是从最底层开始,即那个点击按钮的标签

假设这是个DOM,那么冒泡流就是从p开始,到div,然后body、html、document

html
  head
    body
      div
        p 提交

再来说说事件捕获流:不用说太多,因为这刚好和上面是冒泡流相反,即从最外层的标签开始,最后才到达p标签。

最后来说说现在标准,DOM2级事件流,即首先进行事件捕获流,然后到达事件所在的标签后,进行处理,然后在开始进行事件冒泡流,类似于koa2中的洋葱模型

编辑于 2020-03-03 11:42:11 回复(0)
事件冒泡、事件捕获、DOM事件流。
1、事件冒泡又叫IE的事件流,即事件开始时由最具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向上传播到较为不具体的节点(文档)。
2、事件捕获的思想是不太具体的节点应该更早的接收到事件,而最具体的节点应该在最后接收到节点。事件捕获的用意在于事件到达预定目标之前捕获它。
3、DOM2级事件流规定的事件流包括三个阶段:事件捕获阶段、处于目标阶段和冒泡阶段。首先发生的是事件捕获,为截获事件提供了机会。然后是实际的目标接收到事件。最后一个阶段是冒泡阶段,可以在这个阶段对事件作出响应。 
发表于 2020-02-20 20:00:47 回复(0)
有捕获和冒泡两种,冒泡是事件由子元素传递到父元素的过程,捕获是时间由父元素传递到子元素的过程
发表于 2020-02-13 13:04:12 回复(0)
在ie事件模型中,一次事件共有两个阶段,分别是事件处理和事件冒泡。当目标元素触发事件时,首先会执行事件处理,然后从目标元素一直往上冒泡到document,会依次检查所经历过的元素是否绑定了相应的事件监听,如果绑定了相应的事件监听则会执行事件处理函数。我们可以利用attachEvent()方法来给元素添加事件监听,并且可以添加多个事件处理函数。
在dom2级事件模型中,一次事件有三个阶段,分别是事件捕获、事件处理、事件冒泡。事件捕获首先会从document一直查找到目标元素,依次检查所经历的元素是否绑定了相应的事件监听,如果绑定了相应的事件监听则会执行事件处理函数。后面的事件处理和事件冒泡与ie事件模型的一样。我们可以利用addEventListener()方法来添加事件监听,addEventListener可以接受三个参数,第一个参数是指定事件类型,第二个参数是指定事件处理函数,第三个参数是一个布尔值,当它为true时表示在事件捕获阶段执行,当它为false时表示在事件冒泡阶段执行,默认为false。 
发表于 2020-08-01 15:28:44 回复(0)
这题哪位大佬能解答下
发表于 2020-02-13 10:04:59 回复(0)