javascript - .is(焦点) 与 .activeElement?

标签 javascript jquery

我遇到了一个奇怪的问题,我已经使用 document.activeElement.id 解决了这个问题,但是当使用 $('#id').is(': focus') 似乎总是返回 false

在我的控制台中,我测试了以下内容...

> document.activeElement
<input type="text" for="zoomSlider" id="zoomText" oninput="zoomSliderUpdate(value)" value="100">

> $('#zoomText')
<input type="text" for="zoomSlider" id="zoomText" oninput="zoomSliderUpdate(value)" value="100">

> $('#zoomText').is(':focus')
false

> document.activeElement // to check if focus was lost somehow
<input type="text" for="zoomSlider" id="zoomText" oninput="zoomSliderUpdate(value)" value="100">

为什么 is(':focus') 返回 false?

最佳答案

首先,您的代码中有一个错误。它应该是 $('#zoomText').is(':focus')

其次,只有当光标位于元素内部时,该元素才会成为焦点。如果您的光标位于 JavaScript 控制台中,则它具有焦点并导致输入模糊(失焦)。

在 JavaScript 控制台中尝试此操作,然后快速将光标放回输入中。 3秒后,控制台会显示“true”或“false”,以指示“zoomText”元素的焦点状态。

setTimeout(function() { console.log(jQuery('#zoomText').is(':focus')); }, 3000)

关于javascript - .is(焦点) 与 .activeElement?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38836580/

相关文章:

javascript - Atmosphere 框架断开

jquery - 如何使用 jQuery 在选择时忽略大小写?

javascript - 如何使用相同的 ID 刷新多个 iframe

jquery - 是否可以根据用户的屏幕尺寸有条件地更改 div 标签?

javascript - 什么是用于选择特定 div 中具有特定类的 anchor 元素的 jQuery 选择器

javascript - css 在不同浏览器中翻转卡片

javascript - TypeError : this. props.setProductBrand 不是函数

javascript - React Route With Params 找不到路线的位置

jquery - 为什么浏览器看不到这个 CSS 属性

jquery - 将数据拉入客户网站