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

Hover event not triggering properly in MS Edge

我正在从事一个相当大的项目,并且已经设法让除 MS Edge 之外的大多数浏览器都能正常工作。没有惊喜,但我真的需要这种悬停效果才能工作。悬停事件在 Edge 中触发一次,然后完全停止工作。此外,它甚至从不调用我设置的函数。我淡化了基本功能和相关代码,制作了一个演示并将其包含在此处,并在此处设置了一个 jsfiddle:https://jsfiddle.net/8cqw60Le/4/。差点忘了,我是 运行 Windows 10 完全更新,代码是 运行 Jquery 3.2.0 并且它正在 "onDomready" 上设置,但我没有别的尝试工作。请帮忙。我被难住了。

html:

<div id="hover_test_div" style="width:300px; height:300px; background:rgba(0,0,0,0.3);">Hover over this.</div>

JQuery:

$("#hover_test_div").hover(function() {
    alert ("Over");
    trigger_function();
}, function() {
    alert ("Out");
    trigger_function();
});

function trigger_function() {
    alert ("Event triggered.")
}

我已经研究并尝试了提出的建议,但在 Edge 中仍然不起作用。这是我在 jsfiddle 中尝试的。

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

它在除 Edge 之外的所有方面都非常有效,它只触发一次,然后就什么都没有了。这是新的 JSFiddle。 https://jsfiddle.net/8cqw60Le/8/

当您在 mouseover 事件处理程序中调用 alert 函数时,这似乎是 Edge 中的一个错误。我进行了一些 非常 的快速搜索,但在任何地方都没有看到相关文章,因此可能值得写下来。

错误的性质:在 mouseover 事件处理程序中调用 alert 似乎混淆了 Edge 的 selection/mouse 模型。我注意到在 alert 之后你不能再 select 发短信了。

要复制:

  1. 将鼠标移到框上。
  2. 单击警告框上的“确定”。
  3. 尝试select "Hover over this." 文本。 没有任何反应。

解法:

setTimeout 中完成 alert。这是一个应该有效的jsfiddle


编辑:我写了一个错误报告here