我需要在我的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。
请参阅兼容性信息here或here。