【问题标题】:jQuery `[jQuery created Element].is(":hover")` Only Seems To Work In ChromejQuery `[jQuery created Element].is(":hover")` 似乎只在 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!

标签: javascript jquery jquery-hover


【解决方案1】:

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

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


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

【讨论】:

    猜你喜欢
    • 2021-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-17
    • 1970-01-01
    • 2012-06-23
    • 2011-09-08
    相关资源
    最近更新 更多