在我正在构建的站点的首页上,有几个<div>
使用CSS :hover
伪类在鼠标悬停时添加边框.其中一个<div>
包含一个<form>
,使用jQuery,如果其中的输入具有焦点,将保持边界.除了IE6不支持:hover
除<a>
s 之外的任何元素之外,这完全有效.所以,对于这个浏览器,我们只使用jQuery来模拟:hover
使用该$(#element).hover()
方法的CSS .唯一的问题是,现在的jQuery处理两种形式focus()
和 hover()
,当输入具有焦点,则用户移动鼠标或缩小,边界消失.
我以为我们可以使用某种条件来阻止这种行为.例如,如果我们测试鼠标输出是否有任何输入有焦点,我们可以阻止边界消失.AFAIK,:focus
jQuery中没有选择器,所以我不确定如何实现这一点.有任何想法吗?
可能重复:
如何找出哪个DOM元素具有焦点?
有没有办法在javascript中确定哪个html页面元素有焦点?
假设有一个带有单个输入的文档.我想要做的就是这么简单:
$("input").focus().is(":focus");
Run Code Online (Sandbox Code Playgroud)
我希望上面的代码能够返回true
.相反,firebug记录错误:
Syntax error, unrecognized expression: Syntax error, unrecognized expression: focus
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么?我假设使用的语法is()
是相同的$()
,或者我不能这样做?
如果这是不可修复的,你会如何建议检查焦点输入?
编辑:
从jquery 1.6开始,:focus
选择器是jquery核心的一部分:http://api.jquery.com/focus-selector/
如果需要,只需升级即可.