禁用按钮的孩子会冒泡吗?

Do disabled button's children bubble?

提问人:Aaron Parisi 提问时间:2/11/2023 最后编辑:Aaron Parisi 更新时间:2/11/2023 访问量:43

问:

编辑

我认为这与自定义元素有关。如果我用一个简单的按钮替换按钮的子项,我们会得到预期的行为(即单击子项不会导致执行父级的事件处理程序)<p>

<div id="container">
  <button disabled>
    <p>X</p>
  <button>
</div>

假设我有以下内容:

<div id="container">
  <button disabled>
    <some-custom-element>
      < /* some svg stuff /* ></>
    </some-custom-element>
  <button>
</div>

说我有

$container = document.getElementById('container')
$container.addEventListener('click', () => {
  // stuff
})

如果我单击按钮(就像它的边缘一样,所以不是子按钮),我最终不会进入按钮父级的点击侦听器。

但是,如果我单击按钮的子按钮,则该事件会上升到按钮的父级,尽管该按钮被禁用。我原以为传播会在禁用按钮处停止,但我真的不知道为什么我会这样。

这是意料之中的吗?

JavaScript 按钮 处理 addEventListener 事件冒泡

评论

0赞 Pointy 2/11/2023
这种行为肯定会让我感到惊讶。

答: 暂无答案