我一直在使用以下代码段在 Chrome/Safari 和 FF 中确定用户是否将鼠标悬停在锚点上。
var isURL = $("a", obj).is(":hover");
我看过关于 :hover 是 CSS 选择器的各种帖子,但我无法理解的是为什么如果 obj 中有 1 个链接,代码返回true ,但如果有 2 个或更多链接,则会引发javascript 无法识别的表达式悬停错误.
这是:悬停工作的小提琴:-http: //jsfiddle.net/2kyaJ/122/
相同但多个元素(不工作): - http://jsfiddle.net/2kyaJ/121/
谁能给我解释一下?
顺便说一句,我已经看到了...如何检查鼠标是否在 jQuery 中的元素上?
4 年过去了,这仍然是确定用户是否悬停在某个元素上的最佳且看似唯一的方法吗?如果是的话,任何人都可以提供一个例子吗?
编辑:必须去钓鱼以获得我需要的东西,但事实证明这很简单,因为它真的很好用。
我目前在一个带有 jQuery 1.9.1 的插件中使用它,我在父元素(obj)的鼠标悬停时触发动画。希望其他人在将来发现它有用。使用 .length 而不是 .size,因为 .size 从 1.8 版开始已被弃用。
function isMouseOver() {
if ($('a:hover', obj).length != 0) {
return true;
} else {
return false;
}
}
用法:
var isURL = isMouseOver();