我正在开发一个可以使用键盘控制的应用程序(游戏)。问题是它还包含一些默认输入元素(如登录表单字段)。为了防止游戏在用户输入凭据时对按键使用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/