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

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


我已经进行了一些研究,虽然我看到有些人在帖子中说这仅适用于mousedown等鼠标事件,但我从信誉良好的源中发现了几篇文章,这些文章使我相信这应该可行。


https://developer.mozilla.org/en-US/docs/DOM/event.relatedTarget在这里,Firefox特别提到event.relatedTarget如何在“ focusin”事件中返回“哪个EventTarget正在失去焦点”。
Firefox是我正在使用的浏览器。
http://www.w3.org/TR/DOM-Level-3-Events/#events-FocusEvent在此书签中,您可以看到每个FocusEvent都有一个称为相关目标的只读属性。
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);
 }

最佳答案

尽管MDN在focusin / focusout事件中提到relatedTarget,但不幸的是,实际上没有版本的FireFox支持这两个事件。 jQuery只是为您模拟了它们,但是由于缺乏本机支持,因此在FF上不会获得relatedTarget。

请参阅兼容性信息herehere

08-24 12:54