10

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

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

我已经进行了一些研究,虽然我看到一些人在帖子中说这仅适用于鼠标事件,如 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 都有一个只读属性,称为相关目标。

  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);
 }
4

1 回答 1

9

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

在此处此处查看兼容性信息。

于 2013-02-25T11:48:51.020 回答