Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[js] 第47天 请说说你对事件冒泡机制的理解? #179

Open
haizhilin2013 opened this issue Jun 1, 2019 · 10 comments
Open

[js] 第47天 请说说你对事件冒泡机制的理解? #179

haizhilin2013 opened this issue Jun 1, 2019 · 10 comments
Labels
js JavaScript

Comments

@haizhilin2013
Copy link
Collaborator

第47天 请说说你对事件冒泡机制的理解?

@haizhilin2013 haizhilin2013 added the js JavaScript label Jun 1, 2019
@rocky-191
Copy link

事件流的执行顺序,捕获阶段-》目标阶段-》冒泡阶段。冒泡从里到外的执行。<div><span>点我</span></div>,在div上定义的事件,点击span的时候会触发span上面绑定的事件,之后也会触发外面div上面的事件,这就是冒泡。

@simonliang20
Copy link

事件传播的过程分为捕获阶段、目标阶段和冒泡阶段。冒泡阶段是从目标到window对象的过程。事件默认是冒泡的,当父元素添加监听事件,点击子元素后,父元素上的事件会被触发,这就是典型的冒泡。

@myprelude
Copy link

对事件冒泡机制的理解:
不是很清楚题目什么意思,冒泡过程就是:事件源触发事件后,会将事件反馈给他的父元素。。一直到document。这个过程中如果父元素也有对应的evet.type的话也会触发。为了防止触发可以通过evet.target来判读或者直接event.stopPropagation()阻止事件冒泡。

@Vi-jay
Copy link

Vi-jay commented Jul 31, 2019

从上向下传递(捕获)->在从下往上传递(冒泡) e.stopPropagation()可以阻止事件继续传递

@dangjian
Copy link

dangjian commented Sep 29, 2019

事件流
image
按照W3C事件模型,事件流按照次序依次为捕获阶段目标阶段冒泡阶段。如果事件绑定时候,禁止了冒泡,则事件流会停止在目标阶段。

先说两个有关DOM事件流的概念事件冒泡事件捕获

  • 事件冒泡: 事件沿着DOM树向上通知
  • 事件捕获:和事件冒泡相反,事件沿着DOM数向下通知

开发者可以自己决定事件处理注册到捕获阶段,或者是冒泡阶段。
element1.addEventListener('click',doSomething2,true) 如果最后一个参数为true,则注册到捕获阶段。

事件委托(事件代理)
介绍完上面的,事件委托是时候登场了。事件委托简单说起来就是利用事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件。

@blueRoach
Copy link

事件冒泡指的是,当你对某个元素进行事件操作时,会向上(父级元素)一直触发,就是冒泡一样。
阻止冒泡 event.stopropagation()

@Alex-Li2018
Copy link

事件流的问题

@HNHED
Copy link

HNHED commented Sep 4, 2021

事件冒泡

IE的事件流叫事件冒泡,即事件开始时由最具体的元素(文档中嵌套最深的那个节点)接收,然后逐级向上传播到较为不具体的节点(文档)

事件捕获

事件捕获的思想是不太具体的节点应该更早接收到事件,而更具体的节点应该最后接收到事件

@xiaoqiangz
Copy link

事件流的过程包括 捕获阶段、目标阶段、冒泡阶段。 事件冒泡可以理解为当源dom触发事件后会一直向它的父级传播,直到document。 阻止冒泡可以使用 event.stopPropagation()来阻止。

@never123450
Copy link

事件冒泡是 JavaScript 中的一种事件传播机制。当一个元素触发了某个事件时(如点击事件),该事件将从触发元素开始向上层元素逐级传播,直到传播到文档根节点。这种传播过程就是事件冒泡。

事件冒泡的机制使得我们可以在父元素上捕获子元素触发的事件。例如,当子元素被点击时,父元素也会触发相应的点击事件。这样可以方便地对整个元素树进行事件处理,而不需要为每个子元素都添加事件监听器。

在事件冒泡过程中,可以通过调用事件对象的 stopPropagation() 方法来阻止事件继续向上层元素传播。这样可以避免事件被更高层的元素捕获和处理。

要注意的是,并非所有的事件都支持事件冒泡机制。例如, focusblur 事件不会冒泡。但是大多数常见的事件(如点击、键盘事件等)都支持事件冒泡。

通过理解事件冒泡机制,我们可以更好地处理和管理事件,实现更灵活和可扩展的交互效果。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
js JavaScript
Projects
None yet
Development

No branches or pull requests