【问题标题】:jquery focusout event missing relatedTarget informationjquery focusout事件缺少relatedTarget信息
【发布时间】:2011-01-10 22:52:51
【问题描述】:

我有一个绑定到focusin/focusout 事件的文本输入。

$(element)
    .focusin(function(e) {})
    .focusout(function(e) {
        var to = e.relatedTarget || e.toElement;
        // undefined in chrome, fine in IE
    });

focusout 上,我对relatedTarget 信息感兴趣,即当文本输入失去焦点时接收焦点的DOM 元素,但是这个属性是undefined 的事件。

另一方面,toElement 是可用的,我认为它与relatedTarget 等效。换句话说,我的 focusout 处理程序在 IE 中运行良好,但在其他浏览器中则不行。

是否有解决上述限制的方法?

【问题讨论】:

    标签: javascript jquery events focusout


    【解决方案1】:

    来自the MDC docs

    只有 MouseEvents 有这个属性

    focusout 不是鼠标事件,所以relatedTarget 没有设置。 IE 在这里没有遵循标准(什么是新的?)。

    【讨论】:

    • @ob 如果您阅读该页面,它将进一步说明只有 一些 鼠标事件设置了relatedTargetmousedown 不是其中之一。它没有语义意义。
    • 对,但是在 mousedown 上我可以检查 e.target。在这种情况下不一定需要relatedTarget。
    • 你确定还是这样吗?查看developer.mozilla.org/en-US/docs/Web/Events/focusout(上次更新时间为 2014 年 6 月 19 日上午 1:31:51),我看到该属性可用。
    • relatedTarget 是 DOM level-3 Event 规范的一部分,用于 focus、blur、focusin 和 focusout。
    猜你喜欢
    • 1970-01-01
    • 2013-12-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-03
    • 2010-10-11
    • 1970-01-01
    • 1970-01-01
    • 2016-08-25
    相关资源
    最近更新 更多