了解事件冒泡[重复]

问题描述 投票:0回答:1

这个问题在这里已有答案:

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

<!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>
javascript html5 dom-events
1个回答
1
投票

仅仅因为浏览器会在分层HTML标记时修复你的错误。 在适当的时候(在块级DIV之前)插入关闭的</p>标签,因为<div>不是<p>的允许后代。

生成的标记是:

<p onclick="alert('1')">
  1
</p>
<div onclick="alert('2')">
  2
  <div onclick="alert('3')">3</div>
</div>
<p></p>
© www.soinside.com 2019 - 2024. All rights reserved.