我正在尝试使用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
...
如果有人可以解释原因,或指向解释它的文档,那就太棒了。
答案 0 :(得分:1)
我的理解是,由于捕获设置为
.stacked(true)
,因此单击图像应将true
记录到控制台。相反,它会记录DIV
...
这完全错了。 IMG
将始终返回触发事件的元素,与事件处理阶段无关。请参阅spec。
答案 1 :(得分:1)
您似乎将元素处理程序与元素目标混淆。
当您使用event.target
时,您指的是点击光标前面的元素。
相反,要引用事件的元素处理程序,您应该使用关键字this
。