javascript - jQuery:如何知道输入元素是否有焦点

标签 javascript jquery jquery-ui focus

我正在开发一个可以使用键盘控制的应用程序(游戏)。问题是它还包含一些默认输入元素(如登录表单字段)。为了防止游戏在用户输入凭据时对按键使用react,我进行了这样的检查:

if (isDef($("*:focus").attr("id")))
    return;

它在几乎所有主流浏览器中都运行良好,但 IE 除外。在 Internet Explorer 中,div 也可以将焦点放在它们上面,几乎在每种情况下,页面上的某些元素都会将焦点放在它上面。因此,我不想检查某个元素是否具有焦点,而是要检查可以接受键盘输入的某个元素是否具有焦点。在我的例子中,它仅限于文本区域或输入。如何检查这两种类型的元素是否具有焦点?

最佳答案

您可以使用 jquery 的 is 表达式轻松地做到这一点。

if($("input,textarea").is(":focus")){
//input and text area has focus
}
else{
//no focus for input and textarea
}    

如果您只想检查文本框焦点而不是每个输入元素,则将 input 更改为 input['text']

关于javascript - jQuery:如何知道输入元素是否有焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9885272/

相关文章:

javascript - 使用 Range API chop 文本

javascript - 将页面上以一种形式输入的值相加

javascript - IE7 : . 删除()不起作用 - 元素(byID)不存在

javascript - 使用jQuery通过.submit()事件播放音频

javascript - jquery变量添加额外的选择器

javascript - jQuery UI slider 滚动条中的鼠标滚轮控制

jquery - 如何迭代此表并提取幻灯片的所有信息?

javascript - 触摸屏激活时 onmousedown 和 onmouseup 不起作用

javascript - 无法使用express.Router 提供静态文件?

javascript - 带有复选框和 anchor 标记的 jquery