栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

原始(正确)答案:

您可以使用

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版本一起使用。当我试图找到关于他的案子有什么特别之处时,我注意到他试图一次检查多个要素。这是投掷的

UncaughtError: 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开发技巧和资源时事通讯也对此进行了引用。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/416069.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号