我有一个骨干应用程序,其下面的事件处理程序类似于p元素:
onClickFilter: function(event) {
console.log(event.target.outerHTML); // element sometimes reported as font instead of p
}
因为应用程序将错误记录到服务器,我发现有些用户遇到了由于此事件目标是字体元素而导致的javascript错误(代码中甚至没有任何字体元素)。在应用程序中的几个不同位置发生此问题。不幸的是,我无法在各种浏览器/设备上重现该问题。可能会发生什么想法?
答案 0 :(得分:1)
event.target
是原始元素,它可以是您绑定事件的元素的后代元素,因为大多数事件(包括click
)都来自源于其祖先的元素。如果您想要绑定事件的元素,则使用现代机制this
或event.currentTarget
。如果你正在处理IE和attachEvent
,你必须自己处理闭包。
但是例如:
<div id="target"><span>Click me</span></div>
和
document.getElementById("target").addEventListener("click", function(e) {
console.log(e.target.tagName);
});
点击“点击我”字样会记录SPAN
,而非DIV
。