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