我正在开发可以使用键盘控制的应用程序(游戏).问题是它还包含一些默认的输入元素(如登录表单字段).为了防止游戏在用户输入凭证时对按键进行反应,我做了这样一个检查:
if (isDef($("*:focus").attr("id"))) return;
它几乎在所有主流浏览器中工作得很好,但IE.在Internet Explorer的div中也可以专注于它们,几乎在每一种情况下,页面上的某些元素都集中在它上面.因此,我想检查一些元素是否具有焦点,但某些元素可以接受键盘输入的焦点.在我的情况下,它限于textarea或输入.如何检查这两种类型的元素是否有焦点?
解决方法
你可以通过使用jquery的表达来轻松地做到这一点.
if($("input,textarea").is(":focus")){ //input and text area has focus } else{ //no focus for input and textarea }
如果要仅检查文本框焦点而不是每个输入元素,则使用输入[‘text’]更改输入