【发布时间】:2016-11-04 09:25:03
【问题描述】:
我在 FireFox 和 IE 11 中遇到了 mouseout 事件的问题。我已经在许多不同的设置上使用 browserstack 测试了该功能,但它表明该功能在 Chrome、Safari、Opera 和 Edge 中运行良好。
问题是当我在 FireFox 或 IE 11 中打开下拉菜单并将鼠标移动到第一个选项时触发 mouseout 事件。
经过一番搜索,我发现这是 FireFox 的一个已知问题,但我无法让脚本正常工作 -> 仅在用户离开浏览器的窗口(内容部分)时触发 mouseout 事件.
我的活动:
this.addEvent(document, "mouseout", function(e) {
e = e ? e : window.event;
var from = e.relatedTarget || e.toElement;
if (!from || from.nodeName == "HTML") {
showPopup();
}
});
这是一个小提琴:https://jsfiddle.net/b9b3xwre/
打开后可以看到fiddle的浏览器视图中也出现了这个错误。
我在这次活动中错过了什么吗?
非常感谢任何帮助。
编辑@Flyer53 关于 mouseleave 的评论:
我改成:
this.addEvent(document, "mouseleave", function(e) {
e = e ? e : window.event;
var from = e.relatedTarget || e.toElement;
if (!from || from.nodeName == "HTML") {
bioEp.showPopup();
console.log("show");
}
});
但它不再在 FireFox 中触发
来自 zer00ne 答案的事件监听器 mouseleave 的新小提琴:https://jsfiddle.net/wtkfr4h8/1/
【问题讨论】:
-
您是否真的尝试过
mouseleave而不是mouseout?尽管您在问题中提到了它,但您并没有说您是否在代码中尝试过... -
是的,我确实尝试使用 mouseleave 而不是 mouseout。问题是该功能在我更改后根本无法在 FireFox 中运行。 mouseleave 仅适用于 Chrome、Opera、Edge 等,但不适用于 FireFox。
标签: javascript jquery firefox