【发布时间】:2021-07-12 18:19:11
【问题描述】:
我需要在鼠标离开<body> 时显示我的弹出窗口,这表明退出意图。
因此,当我的客户键入他们的电子邮件时,弹出窗口只是在他们的指针位于建议上方的那一刻出现,并且不应该发生。但是发生这种情况是因为这部分不在DOM中,所以触发了鼠标离开
但是,当鼠标悬停在浏览器上的原生输入建议上时会触发此事件(我在 Firefox 和 Chrome 上测试过)。
那么,有什么想法可以跳过这个假触发器?
document.body.onmouseleave = function(e) {
console.log("mouse leave was trigged")
}
看看发生了什么:
【问题讨论】:
-
在你的输入上设置一个
mouseLeave而不是你的document.body -
@KolaCaine,我需要在鼠标离开正文时显示我的弹出窗口,显示退出意图,所以当我的客户输入他们的电子邮件时,弹出窗口只会出现在他们的确切时刻指针在建议之上。发生这种情况是因为这部分不在DOM中,所以它触发了鼠标离开。
-
@FabricioJeanSilva 怎么不在 DOM 中?你没有告诉它弹出吗?如果您有权访问下拉菜单,请将 am id 添加到其中,然后为您的函数设置一个异常,如果它在该 id 内则不会触发。
-
@krizpers 自动填充(下拉菜单)不在 DOM 中,它是为浏览器提供的,我无权获取它,(至少我不知道如何) ,所以对于body来说,就是鼠标离开事件。
标签: javascript html dom browser dom-events