Jquery 在MS Edge中未正确触发悬停事件

Jquery 在MS Edge中未正确触发悬停事件,jquery,microsoft-edge,Jquery,Microsoft Edge,我正在做一个相当大的项目,除了MSEdge之外,我已经设法让所有的浏览器都能正常工作。没有补充,但我真的需要这个悬停效果的工作。悬停事件在Edge中触发一次,然后完全停止工作。此外,它甚至从未调用我设置的函数。我已经淡化了基本函数和相关代码,制作了一个演示,并将其包含在这里,同时在这里设置了一个JSFIDLE:。差点忘了,我运行的是完全更新的Windows 10,代码运行的是Jquery 3.2.0,它设置在“onDomready”上,尽管我尝试过的其他方法都不起作用。请帮忙。我被难住了 htm

我正在做一个相当大的项目,除了MSEdge之外,我已经设法让所有的浏览器都能正常工作。没有补充,但我真的需要这个悬停效果的工作。悬停事件在Edge中触发一次,然后完全停止工作。此外,它甚至从未调用我设置的函数。我已经淡化了基本函数和相关代码,制作了一个演示,并将其包含在这里,同时在这里设置了一个JSFIDLE:。差点忘了,我运行的是完全更新的Windows 10,代码运行的是Jquery 3.2.0,它设置在“onDomready”上,尽管我尝试过的其他方法都不起作用。请帮忙。我被难住了

html:

我已经研究并尝试了所提出的建议,但仍然不适用于Edge。这就是我在JSFIDLE中尝试的

$( "#hover_test_div" ).on( "mouseover mouseout", function() {
  alert( $( this ).text() );
});

它在任何情况下都非常有效,但在边缘触发一次,然后什么都没有。这是新的JSFIDLE

mouseover
事件处理程序中调用
alert
函数时,这似乎是Edge中的一个bug。我做了一些非常快速的搜索,但在任何地方都没有看到一个writeup,所以可能值得写下来

缺陷的性质:在
mouseover
事件处理程序中调用
alert
,似乎会混淆Edge的选择/鼠标模型。我注意到在发出
警报后,您无法再选择文本

到dup:

  • 将鼠标移到盒子上
  • 单击警报框上的“确定”
  • 尝试选择“将鼠标悬停在此上方”文本什么也没发生。
  • 解决方案:

    设置超时
    中执行
    警报
    。这是一个应该有效的方法



    编辑:我写了一份bug报告。

    悬停方法是去润滑的-并且在Edge发布之前已经去润滑了。它不起作用也就不足为奇了。请改用.on方法以确保与edge兼容。更多信息:感谢您的快速回复。我仔细阅读了这个方法,并尝试了你的建议,它的反应也是一样的。我用最新的调整编辑了这篇文章。非常感谢。我开始觉得我疯了。我从发帖开始就想出了一个解决办法。它没有你的那么优雅和紧凑,但我不想再重新编程了。。哈哈。我投票支持你的答案,但还没有足够的代表性。“再次谢谢你。”肯特克尔森很高兴我能帮上忙。如果您觉得这个答案足够,那么将其标记为已接受将有助于社区分类哪些问题需要更好的答案(这也给了我甜蜜的互联网分数)。看见
    $("#hover_test_div").hover(function() {
        alert ("Over");
        trigger_function();
    }, function() {
        alert ("Out");
        trigger_function();
    });
    
    function trigger_function() {
        alert ("Event triggered.")
    }
    
    $( "#hover_test_div" ).on( "mouseover mouseout", function() {
      alert( $( this ).text() );
    });