javascript - 事件捕获未按预期运行

标签 javascript dom-events

我正在尝试在 JavaScript 中捕获事件,但它没有按预期工作。

例如,这是一些 html :

<div id="test">
    <a href="someimage.jpg"><img src="someimage.jpg" /></a>
</div>

和 JavaScript :

document.getElementById("test").addEventListener("click", function(event) {
    event.preventDefault();
    console.log(event.target.nodeName);
}, true);

我的理解是,由于捕获设置为 true,因此单击图像应将 DIV 记录到控制台。相反,它记录 IMG...

如果有人可以解释原因,或者指出解释它的文档,那就太好了。

最佳答案

您似乎将元素处理程序元素目标混淆了。

当您使用event.target时,您在单击时引用的是光标正前方的元素。

相反,要引用事件的元素处理程序,您应该使用关键字 this

关于javascript - 事件捕获未按预期运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36047825/

相关文章:

javascript - 钛自动更新剩余时间标签

javascript - 如何在 DOM 上触发 js 创建的触摸事件

javascript - mediaelement 'playing' 事件跟踪

javascript - AngularJS - 在 ng-click 中的摘要循环后执行代码

javascript - 函数递归调用自身时,是什么导致 "no method"错误?

javascript - 为什么 getPreventDefault() 起作用而 defaultPrevented 不起作用?

javascript - 将上下文变量作为参数传递给 onclick 事件处理程序

javascript - 我应该监听哪些事件以在 JavaScript 中隐藏自定义上下文菜单

javascript - 应该由 Promise 调用同步代码。然后创建一个新的 Promise

javascript - 多个下拉列表 - onclick 不关闭