【发布时间】:2011-12-15 01:26:29
【问题描述】:
我正在构建一个应用程序,您只需单击它们即可将列表项从一个列表移动到另一个列表。但是,为了让用户知道点击的预期操作是什么,我在 CSS 中设置了一个 :hover 状态,它显示了诸如“
然而,我发现的问题是,在 Internet Explorer(测试版本 7-9)中,当我移动一个 DOM 元素时,该元素的 :hover 状态仍然存在(变得粘滞),即使鼠标四处移动也是如此。 :hover 状态仅在用户将鼠标悬停在新位置的项目上然后将鼠标移开时才会消失。这似乎是 Internet Explorer 唯一的问题。
如果您使用的是 IE,则可以通过转到 http://jsfiddle.net/hc2Eu/32/ 来查看问题
当然有一种解决方法是不使用 CSS :hover 状态而使用 JQuery 悬停事件,但这肯定不是最好的做事方式,并且保持元素 :hover 状态在 CSS 中控制是迄今为止并摆脱最强大的方法。解决方法见http://jsfiddle.net/hc2Eu/29/
有没有人想出如何以某种方式告诉 Internet Explorer 某个元素不再位于鼠标下方,它应该释放 :hover 状态?
马特
【问题讨论】:
-
“最好”的方式行不通。解决方法可以。我不明白为什么这对你来说是个问题。
-
这是一个问题,因为它是浏览器故障,所以每次我添加代码来修复浏览器问题时,我都会污染我的代码。为了保持代码的可读性和简洁性,我喜欢尽可能避免使用变通方法。
标签: jquery css internet-explorer hover