为什么event.relatedTarget不能在Firefox中使用focusin/focusout事件?

Kli*_*lik 10 firefox dom focus event-handling

我需要在我的focusin函数中找到以前关注的项目.这是一个示例代码:

$('#id').on('focusin', function(event) {
  //console.log(event.relatedTarget.nodeName);    //doesn't work
}
Run Code Online (Sandbox Code Playgroud)

我已经做了一些研究,虽然我看到有些人在帖子中说这只适用于像mousedown等鼠标事件,但我发现一些来自信誉良好的来源的文章让我相信这应该有效.

  1. https://developer.mozilla.org/en-US/docs/DOM/event.relatedTarget这里Firefox 特别提到了event.relatedTarget如何在'focusin'事件中返回"哪个EventTarget失去焦点". Firefox是我正在使用的浏览器.

  2. http://www.w3.org/TR/DOM-Level-3-Events/#events-FocusEvent在此书签中,您可以看到每个FocusEvent都有一个名为related target的只读属性.

  3. http://www.w3.org/TR/DOM-Level-3-Events/#event-type-focusIn这里他们特别指出'FocusEvent'有一个名为'relatedTarget'的属性,即"事件目标丢失焦点(如果有的话)."

那么我在这里做错了什么?它必定是某种愚蠢的语法错误或其他东西.我找不到event.relatedTarget的nodeName.

更新:我可以在IE中使用它,但这在Firefox中不起作用???

 $("#id").on('focusin', function(event) {
   $('#textbox').text(event.relatedTarget.nodeName);
 }
Run Code Online (Sandbox Code Playgroud)

Dmi*_*ich 9

虽然MDN提到了focusin/ focusoutevents的相关目标,但遗憾的是,没有任何版本的FireFox实际上支持这两个事件.jQuery只是为你模拟它们,但由于缺乏原生支持,你不会在FF上获得relatedTarget.

见兼容性信息在这里在这里.