gpt4 book ai didi

javascript - 查询 :focus when the browser ain't focused

转载 作者:行者123 更新时间:2023-11-30 16:16:08 33 4
gpt4 key购买 nike

在不考虑性能的情况下,我总是认为 $(":focus") 返回的 jquery 对象等同于 $(document.activeElement)

但是,如果您闯入浏览器调试器并评估 $(":focus"),您将不会在 $(document.activeElement) 仍然会返回焦点元素。我在考虑某种观察者效应问题,但如果您将焦点设置在浏览器之外,情况也是如此。

根据 jquery documentation ,焦点选择器应该“选择当前焦点的元素”。由于没有提及浏览器焦点,我想知道这是否是预期的行为,或者是否应该将其报告为错误。

如果你想尝试这种行为,我创建了一个 JsFiddle例子。当您将注意力从输入(在表单内、控制台或其他应用程序中)移开时,您将看到 $(":focus") 的 react 。

最佳答案

查看 :focus 选择器的源代码:

"focus": function( elem ) {
return elem === document.activeElement
&& (!document.hasFocus || document.hasFocus())
&& !!(elem.type || elem.href || ~elem.tabIndex);
}

因此为了返回元素,elem 必须等于 document.activeElement,文档必须有焦点,元素必须有一个 typehreftabIndex 属性。

两者不等价


编辑

在您的 fiddle 中,当您从输入中移除焦点时,document.activeElement 变为 body,文档是否具有焦点并不重要。

关于javascript - 查询 :focus when the browser ain't focused,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35507696/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com