gpt4 book ai didi

javascript - 为什么这段代码中的js事件没有冒泡?

转载 作者:行者123 更新时间:2023-12-01 01:43:04 26 4
gpt4 key购买 nike

我希望能够单击 div“三”并且它应该冒泡到其他两个?

const divs = document.querySelectorAll('div');
divs.forEach(div => div.addEventListener('click', function (e) {
console.log(e.target.className);
}));
<div class="one">
<div class="two">
<div class="three">
Hello World
</div>
</div>
</div>


最佳答案

它确实冒泡了,您应该收到 3 条日志消息。

它每次记录三个,因为e.target是事件冒泡的原始元素。要获取传播中的当前元素,请使用e.currentTarget。此代码记录三、二、一

参见What is the exact difference between currentTarget property and target property in javascript

const divs = document.querySelectorAll('div');
divs.forEach(div => div.addEventListener('click', function (e) {
console.log(e.currentTarget.className);
}));
<div class="one">
<div class="two">
<div class="three">
Hello World
</div>
</div>
</div>


关于javascript - 为什么这段代码中的js事件没有冒泡?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52230358/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com