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

时间:2017-03-17 21:41:31

标签: jquery microsoft-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/

1 个答案:

答案 0 :(得分:0)

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

错误的性质:在alert事件处理程序中调用mouseover似乎会混淆Edge的选择/鼠标模型。我注意到alert之后你不能再选择文字了。

要复制:

  1. 将鼠标移到方框上。
  2. 点击提醒框中的确定。
  3. 尝试选择&#34;将鼠标悬停在此上。&#34;文本。 什么都没发生。
  4. <强>解决方案:

    alert中执行setTimeout。这是一个应该有用的jsfiddle

    修改:我写了一个错误报告here