2017-03-17 94 views
0

我正在开发一个非常大的项目,并且设法让大多数所有浏览器(MS Edge除外)都能正常工作。没有supprise那里,但我真的需要这个悬停效果的工作。悬停事件在Edge中触发一次,然后完全停止工作。另外,它甚至不会调用我设置的功能。我已经淡化了基本功能和相关代码,进行了演示并将其包含在此处以及在此处设置jsfiddle:https://jsfiddle.net/8cqw60Le/4/。差点忘了,我正在运行Windows 10完全更新,代码运行Jquery 3.2.0,它设置在“onDomready”上,尽管没有其他我尝试过的工作。请帮忙。我很难过。悬停事件在MS Edge中没有正确触发

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.") 
} 

我已经调查并试图提出的建议,仍然不封边工作。这是我在jsfiddle中尝试的。

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

它在一切都很好,但它只触发一次,然后什么都没有。这是新的JSFiddle。 https://jsfiddle.net/8cqw60Le/8/

+0

悬停方法被删除 - 并且在Edge发布之前被删除。 这不奇怪,它不工作。使用.on方法来确保与边缘的兼容性。 更多信息:http://api.jquery.com/on/#additional-notes – Korgrue

+0

感谢您的快速回复。我阅读了该方法,并尝试了您的建议,并且采用相同的方式进行反应。我使用最新的调整编辑了帖子。 –

回答

0

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

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

要DUP:

  1. 将鼠标移动到的框。
  2. 单击提示框上的确定。
  3. 尝试选择“将鼠标悬停在此上。”文本。 什么都没有发生。

解决方案:

执行alertsetTimeout。这是应该工作的jsfiddle


编辑:我写了一个bug报告here

+0

非常感谢你。我开始觉得我疯了。自从发布以来,我已经找到了一种解决方法。它不如你的优雅和紧凑,但我不想再次重新编程。LOL。我投了你的答案,但没有足够的代表呢。再次感谢你。 –

+0

@KentTorkelson很高兴能帮到你。如果你觉得这个答案足够了,那么将其标记为Accepted将有助于社区分类哪些问题需要更好的答案(它也给我甜蜜的互联网点)。请参阅http://stackoverflow.com/help/someone-answers。 – JosiahDaniels

+0

很高兴完成。再次感谢。 –