Microsoft Edge 在支持触摸屏的设备上出现 .mouseenter() 问题

.mouseenter() issue in Microsoft Edge on touch screen enabled devices

我在一个网站上安装了 SlimMenu,我注意到在启用触摸屏的设备上使用 Microsoft Edge,当您尝试点击菜单项,下拉将立即 slideDown 和 slideUp 返回。

起初我认为这是一个 SlimMenu 问题,但在所有其他浏览器上它都按预期工作(即使在 Explorer 11 中),而且同样的问题可以用 FlexNav 的相同方式重现。

我想这与 Edge 浏览器如何处理 .mouseenter() 和 .mouseleave() 操作有关。

要复制问题:

然后转到 SlimMenu 页面:http://adnantopal.github.io/slimmenu/(页面中间有菜单演示,请在全角模式下尝试)。

那么有人知道是否有解决方法吗?

我是对的。它与 Microsoft Edge 浏览器如何处理 .mouseenter() 和 .mouseleave() 有关。

事实上,它们不应该传播到子元素,但在 Edge 中它们会传播。

为了解决这个问题,我不得不手动停止从 "li" 到 "span" 的传播:

$("span").mouseenter(function(event){
event.stopPropagation();  
});