首页 > 解决方案 > 为了使冒泡起作用,子元素甚至需要有一个 eventListener 吗?

问题描述

我很惊讶单击列表项会执行事件处理程序。我认为正在发生的事情是冒泡的结果。

function targetHandler(event) {
  console.log(event.target);
}

let list = document.getElementById("myList");
list.addEventListener("click", targetHandler);
<ul id="myList">
<li>One</li>
<li>Two</li>
<li>Three</li>
</ul>

我知道'click'在元素(具有事件的事件处理程序)上完成的“事件”(即)具有相同事件('click')的事件处理程序的元素的所有祖先(并且其“捕获”参数设置为false) 也执行。

现在我想将其修改为:对于在我们的子元素上完成的“事件”(有或没有该事件的事件处理程序),该元素的所有祖先都具有对子元素执行的相同事件的事件处理程序element ( 'click') (并且其 'capture' 参数设置为false)也执行。

标签: javascripthtml

解决方案


推荐阅读