【发布时间】:2020-04-16 19:49:35
【问题描述】:
我的capture 选项似乎在addEventListener 中不起作用,无论我将其设置为true 还是false,它都会给我相同的控制台结果。
我检查了以下内容:
- 将
once: true添加到选项对象 - 这有效,但捕获无效 - 将
capture替换为useCapture- 这似乎也不起作用,并且在这两种情况下都没有错误/警告消息 - 我在网上看到一些(旧的,例如小于 55 的 chrome 版本)浏览器不支持较新的选项,例如
once- 我正在使用 chrome v88 并尝试使用 Safari 打开文件,以防万一它是浏览器- 相关问题
你知道我做错了什么吗?
function handleClick(e) {
console.log(this.classList.value);
}
const divs = document.querySelectorAll('div');
divs.forEach(div => div.addEventListener('click', handleClick, {capture: true}));
.one {
width: 200px;
height: 200px;
background-color: green;
}
.two {
width: 150px;
height: 150px;
background-color: blue;
}
.three {
width: 100px;
height: 100px;
background-color: red;
}
<div class="one">
<div class="two">
<div class="three">
</div>
</div>
</div>
【问题讨论】:
-
是
div.addEventListener('click', handleClick, {capture: true})或div.addEventListener('click', handleClick, true)。没有useCapture选项属性。所以是的,你的代码应该可以工作。
标签: javascript addeventlistener options event-bubbling event-capturing