【发布时间】:2010-11-01 07:29:57
【问题描述】:
在我正在构建的站点的首页上,几个<div>s 使用CSS :hover 伪类在鼠标悬停时添加边框。 <div>s 之一包含<form>,如果其中的输入具有焦点,则使用 jQuery 将保留边框。除了 IE6 在<a>s 以外的任何元素上不支持:hover 之外,这非常有效。所以,对于这个浏览器,我们只使用 jQuery 来模仿 CSS :hover 使用 $(#element).hover() 方法。唯一的问题是,既然 jQuery 处理了focus() 和 hover() 两种形式,当输入具有焦点然后用户将鼠标移入和移出时,边框就会消失。
我在想我们可以使用某种条件来阻止这种行为。例如,如果我们在鼠标移出时测试任何输入是否有焦点,我们可以阻止边框消失。 AFAIK,jQuery 中没有 :focus 选择器,所以我不确定如何实现这一点。有什么想法吗?
【问题讨论】:
-
你能试着把它归结为几句话需要什么,我发生了什么?
-
我认为您需要考虑捕捉焦点和模糊事件(docs.jquery.com/Events/focus 和 docs.jquery.com/Events/blur)
-
我在相关问题"Is there a ‘has focus’ in JavaScript (or jQuery)?" 上发布了答案。我增强了 [gnarf 引用的 cletus 方法](#2684561)。
标签: javascript jquery jquery-events jquery-on