事件目标错误地设置为字体元素而不是p元素

时间:2014-02-24 23:20:49

标签: javascript html backbone.js

我有一个骨干应用程序,其下面的事件处理程序类似于p元素:

onClickFilter: function(event) {
  console.log(event.target.outerHTML);  // element sometimes reported as font instead of p
}

因为应用程序将错误记录到服务器,我发现有些用户遇到了由于此事件目标是字体元素而导致的javascript错误(代码中甚至没有任何字体元素)。在应用程序中的几个不同位置发生此问题。不幸的是,我无法在各种浏览器/设备上重现该问题。可能会发生什么想法?

1 个答案:

答案 0 :(得分:1)

event.target原始元素,它可以是您绑定事件的元素的后代元素,因为大多数事件(包括click)都来自源于其祖先的元素。如果您想要绑定事件的元素,则使用现代机制thisevent.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