我正在尝试在 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/