jquery - jQuery 事件冒泡是如何工作的?

标签 jquery event-bubbling

我有以下 HTML 代码:

<ul id="level1">
     <li id="level21">item1</li>
     <li id="level22">item2</li>
</ul>

我尝试为子类进行事件冒泡<li>使用 jQuery:

$(document).ready(function(){
    $('#level1').on('click', function(event){
         alert($(this) + ',' + event);
    });
});

此代码不会触发 <li> 的事件冒泡类(class)。 这是因为子类没有点击事件吗? 我还是不明白什么时候会触发事件冒泡?

最佳答案

<ul>元素包裹 <li>元素,这就是当您单击任一项目时触发警报的原因。对于您附加点击事件的每个 DOM 元素都会发生同样的情况 - 所有子元素在点击时都会触发该事件(除非您通过调用 event.stopPropagation() 来停止传播)。

目前,它与事件冒泡无关。由于注释正确,冒泡是指元素触发事件,然后按顺序触发父元素的事件。

你的评论也是正确的。如果您附加了 li 的事件,您将看到两个警报,如 Fiddle 中所示。我做的。

关于jquery - jQuery 事件冒泡是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29579225/

相关文章:

javascript - 奇怪的冒泡问题

javascript - JS 单击事件捕获到 SVG 而不是按钮

javascript - 我们将如何衡量调用 e.stopPropagation() 是否更高效?

javascript - 如何获取它们之间没有文本的第一个子元素

jquery - 使用 jquery ajax 发送用户名和密码

javascript - Angular UI 元素 : do I still need jQuery?

javascript - AngularJs:无法切换两个元素的可见性

javascript - jQuery 获取 <对象> html

javascript - GWT : two DOM events on same div, 优先级以及如何在调用第一个事件时停用第二个事件?

jquery - 通过事件冒泡在 Anchor 内跨度