在我正在构建的网站的首页上,有几个<div>
使用CSS :hover
伪类在鼠标悬停在它们上方时添加边框。的其中一个<div>
包含<form>
,如果其中的输入具有焦点,则使用jQuery使用jQuery保留边框。除了IE6不支持s :hover
之外<a>
的任何其他元素,这都可以正常工作。因此,仅对于此浏览器,我们使用jQuery :hover
使用该$(#element).hover()
方法来模仿CSS 。唯一的问题是,现在jQuery同时处理了form focus()
和 hover()
,当输入具有焦点时,用户将鼠标移入和移出,边框就会消失。
我当时以为我们可以使用某种条件阻止这种行为。例如,如果我们在鼠标移出时测试了任何输入是否具有焦点,则可以阻止边框消失。AFAIK,:focus
jQuery中没有选择器,所以我不确定如何实现。有任何想法吗?
我最后要做的是创建一个名为.elementhasfocus的任意类,该类在jQuery focus()函数中添加和删除。当hover()函数在鼠标移出时运行时,它将检查.elementhasfocus:
因此,如果没有该类(请参阅:div中的任何元素都没有焦点),则边框将被移除。否则,什么也不会发生。