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() );
);
我们有一个 div
和 div.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()?