【发布时间】:2013-01-25 13:10:13
【问题描述】:
我见过这个 jQuery 语法:
if($(element).is(':hover')) { do something}
由于我没有使用 jQuery,我正在寻找用纯 javascript 执行此操作的最佳方法。
我知道我可以保留一个全局变量并使用mouseover 和mouseout 设置/取消设置它,但我想知道是否有某种方法可以通过DOM 检查元素的本机属性?也许是这样的:
if(element.style.className.hovered === true) {do something}
另外,它必须是跨浏览器兼容的。
【问题讨论】:
-
我花了 20 分钟寻找找到这种状态的方法。我怀疑您可能只需要在鼠标悬停和鼠标悬停时将元素上的属性或数据设置为悬停或不悬停,这很可能是您和我们中的任何人阅读本文时想到的第一件事。
-
检查jQuery source code。我认为他们使用
mouseover和mouseout进行悬停。 -
@Antony:我没有看到它被引用到其他任何地方,所以
fn.hover很可能与:hover选择器无关。不过,我可能错了。 -
我不认为 jquery 首先支持:
$(element).is(':hover') // => Error: Syntax error, unrecognized expression: unsupported pseudo: hoverjsfiddle -
一个蹩脚解决方案:jsfiddle.net/czpkz/1
标签: javascript jquery hover