jQuery `[jQuery created Element].is(":hover")` 似乎只在 Chrome 中工作

Posted

技术标签:

【中文标题】jQuery `[jQuery created Element].is(":hover")` 似乎只在 Chrome 中工作【英文标题】:jQuery `[jQuery created Element].is(":hover")` Only Seems To Work In Chrome 【发布时间】:2018-03-01 09:28:55 【问题描述】:

请查看下面的代码(非常精简,不是我的全部功能)。我还有一个小提琴,您可以在以下位置对其进行测试:https://jsfiddle.net/glenn2223/uk7e7rwe/1/

var 
    hov = $("<div class=\"over\">I'm Over You</div>"),
    box = $("<div>Result: WAITING</div>")


$("body").append(hov).append(box);

$("#MeHover").on('mouseleave', function()
    var d = new Date();
    box.text("Result: " + hov.is(":hover").toString().toUpperCase() );
);

我们有一个 divdiv.over 稍微重叠它。当您从 div 移动到 div.over 时,我希望函数返回 true。

在我的全部功能中:这会阻止它隐藏 div.over 元素。

在 Chrome 中打开它可以正常工作。然而,它几乎没有出现在其他所有东西中(测试于:Edge、IE11 和 Firefox)。

【问题讨论】:

我正在使用 jQuery 3.1.0,顺便说一句 小提琴在 Chrome 和 IE11 中对我来说是一样的 @Fran。那很奇怪。是指两者都工作还是两者都不工作?你运行的是什么版本的IE?我正在使用版本:11.608.15063.0 - 更新版本:11.0.46 您在帖子中提到代码在 Chrome 以外的浏览器中的行为不同。当在 Chrome 或 IE11.0.9600.18792 更新版本 11.0.46 中运行你的小提琴时,当将鼠标悬停在文本中的时间更新相同的区域时,它在两个浏览器中的行为完全相同。我不知道这是否正确,但行为是相同的。 所以都说TRUE?时间更新 (在小提琴中) 只是为了让您知道正在执行该操作。如果是这样,那么如果您在11.0.9600 上,它可能是您的版本。你怎么看? 该死的 IE! 【参考方案1】:

好的,所以我们已经找到了为什么它不起作用的原因 :hover 不久前从 .is() 中删除了。

我不会改变这个问题来适应我的发现,我会问另一个(避免混淆)。

我的新问题: Keep jQuery Appended Element Open When Hovering It

【讨论】:

以上是关于jQuery `[jQuery created Element].is(":hover")` 似乎只在 Chrome 中工作的主要内容,如果未能解决你的问题,请参考以下文章

使用 jQuery datepicker 和 Create 视图无法正常工作

create-react-app:jquery.themepunch.tools.min.js找不到tweenlite.js

jQuery Mobile:更新导航栏时替代 .trigger('create') 或 .page()?

怎么调用jquery 里面的$函数

How to Create a Basic Plugin 如何写一个基础的jQuery插件

关于用jquery如何模拟执行键盘按键