javascript - 了解事件冒泡

标签 javascript html dom-events

我试图理解事件冒泡,同时尝试使用我自己的代码: `

<!DOCTYPE html>
    <html>
       <body>
          <div onclick="alert('1')">
             1
             <div onclick="alert('2')">
                2
                <div onclick="alert('3')">3</div>
             </div>
          </div>
       </body>
    </html>

在这里我看到,当点击div 3时,它显示三个警报(3 2 1)。将第一个 div 标签更改为 P 标签后,我单击同一个 div 3,它只显示两个警报 (3 2)。这里,为什么警报 1 没有出现,因为它位于父(P)标签下。

将第一个 div 标签更改为 P 标签后,代码如下所示:

<p onclick="alert('1')">
  1
  <div onclick="alert('2')">
    2
    <div onclick="alert('3')">3</div>
  </div>
</p>

最佳答案

仅仅因为浏览器将修复您在 HTML 标记分层方面的错误
收盘</p><div> 起,在适当的位置插入标记(在 block 级 DIV 之前)不是 <p> 的允许后代。

生成的标记是:

<p onclick="alert('1')">
  1
</p>
<div onclick="alert('2')">
  2
  <div onclick="alert('3')">3</div>
</div>
<p></p>

关于javascript - 了解事件冒泡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54324012/

相关文章:

JavaScript initEvent 不会多次触发

javascript - 检查一个数组中的所有元素是否都存在于另一个数组中

javascript - vuejs 数据更新,但更改未反射(reflect)在模板中

javascript - 使用谷歌分析跟踪页面等哈希链接

javascript - 如何向此 Accordion 添加动画?

javascript - 我可以订阅打开器窗口的加载事件吗?

javascript - 在树 jqgrid 中显示 Sparkine

javascript - 从 PHP 中的 URL 获取 json

html - 使用 Css 创建粘性页脚

javascript - Vue3 Web 组件事件不适用于自定义包装器