当前位置: 首页 > 面试题库 >

使用jQuery检测IF悬停在元素上

翟嘉志
2023-03-14
问题内容

我不是在寻找一个行动调用 的时候 徘徊,而是要告诉的方式 ,如果 一个元素正在上空盘旋目前。例如:

$('#elem').mouseIsOver(); // returns true or false

是否有实现此目的的jQuery方法?


问题答案:

原始(正确)答案:

您可以使用is()并检查选择器:hover

var isHovered = $('#elem').is(":hover"); // returns true or false

(这仅在选择器最多匹配一个元素时有效。有关更多信息,请参见“编辑3”。)

编辑1(2013年6月29日):( 仅适用于jQuery 1.9.x,因为它与1.10+兼容,请参阅下一个编辑2)

在回答问题时,此答案是最好的解决方案。这个’:hover’选择器.hover()在jQuery 1.9.x中被删除了。

有趣的是,“
allicarn”最近的回答显示,:hover当您为选择器添加前缀时,可以将其用作CSS选择器(与Sizzle相对)$($(this).selector + ":hover").length > 0

编辑2(2013年9月21日): .is(":hover") 作品

根据另一条评论,我注意到,我发布的原始方式.is(":hover")实际上仍然可以在jQuery中使用,因此。

  1. 它在jQuery 1.7.x中有效。

  2. 当有人向我报告它时,它在1.9.1中停止工作,我们都认为它与jQuery删除该hover版本中事件处理的别名有关。

  3. 它在jQuery 1.10.1和2.0.2(也许是2.0.x)中再次起作用,这表明1.9.x中的失败是一个错误,或者不是我们先前所想的故意行为。

如果要在特定的jQuery版本中进行测试,只需在此答案的开头打开JSFidlle示例,更改为所需的jQuery版本,然后单击“运行”。如果颜色在悬停时发生变化,则可以使用。

编辑3(2014年3月9日):仅当jQuery序列包含单个元素时才有效

如@Wilmer在评论中所示,他有一个小提琴,甚至无法与我和此处其他人对其进行测试的jQuery版本一起使用。当我试图找到关于他的案子有什么特别之处时,我注意到他试图一次检查多个要素。这是投掷的Uncaught Error: Syntax error, unrecognized expression: unsupported pseudo: hover

var isHovered = !!$('#up, #down').filter(":hover").length;

虽然这 DOES 工作:

var isHovered = !!$('#up,#down').
                    filter(function() { return $(this).is(":hover"); }).length;

它也适用于包含单个元素的jQuery序列,例如原始选择器仅匹配一个元素,或者您调用.first()了结果等。我的JavaScript + Web开发技巧和资源时事通讯也对此进行了引用。



 类似资料:
  • 所以我使用这个代码来显示菜单中的深度3元素(wordpress): 问题是,当我悬停在一个带有子菜单的元素上时,所有带有子菜单的元素都会显示出来。 问题是: 如何只显示一个子菜单,我在我的鼠标悬停的时刻? 很抱歉添加了标记,无法添加“jquery” 编辑: HTML:

  • 如果孩子在焦点中(已被点击),我怎么能失去父母的悬停状态?我有一个菜单箭头(用OPEN代替了它,以减少代码),它在悬停状态下打开我的菜单和菜单项,当我单击它们时,菜单项就会聚焦。在菜单项点击后,我希望能够失去对我父母的关注,这样菜单就会消失。 如果可能的话,我会尽量避免使用javascript,这是我最好的尝试... 这是我的html null null 编辑 我在一个单页应用程序上使用Angul

  • 问题内容: 我的页面布局涉及很多绝对位置和z索引位置,因此有很多元素相互重叠。 元素之一仅包含文本,它悬停在许多其他事物之上。 在该元素下方,有几个应用了CSS悬停伪类的元素。 当鼠标经过包含文本的元素时,我想以某种方式使下面的Element响应鼠标的存在并激活伪类样式。 有没有什么样式的元素,以便它允许悬停通过它传递给下面的任何元素? 使用JavaScript并不是很难,但是为了使事情尽可能简单

  • 问题内容: 我有一个HTML 标签,并且在div内有一个元素,当鼠标进入其边界时会出现在其中。现在,我要单击在鼠标进入或悬停时可见的元素。 问题:元素开始闪烁。浏览器:IE8 我正在使用下面的代码 有什么建议为什么它会闪烁吗? 问题答案: 由于IE驱动程序的一个称为“永久悬停”的功能,该元素闪烁。此功能的价值可疑,但由于IE(浏览器,而非驱动程序)在使用API 时对消息做出反应的大脑失效方式,因此

  • 问题内容: 我有一个HTML 标签,并且在div内有一个元素,当鼠标进入其边界时会出现在其中。现在,我要单击在鼠标进入或悬停时可见的元素。 问题:该元素开始闪烁。浏览器:IE8 我正在使用下面的代码 有什么建议为什么它会闪烁吗? 问题答案: 由于IE驱动程序的一个称为“永久悬停”的功能,该元素闪烁。此功能的价值可疑,但是由于IE(浏览器,而不是驱动程序)在使用API 时响应消息的大脑失效方式,因此

  • 问题内容: 使用和,我一直在页面上隐藏/显示一个元素,但是有两个按钮,一个用于隐藏,一个用于显示。我现在想要 一个按钮来同时切换 两者 。 我的HTML / JavaScript是这样的: 我想要的HTML / JavaScript: 如何检测元素是否可见? 问题答案: 您正在寻找: 尽管您可能考虑到仍在其他地方使用它,但应该将选择器更改为使用jQuery: 重要的是要注意,如果目标元素的父元素中