mouseLeave 在本机输入自动填充时触发

Fab*_*lva 6 html javascript browser dom dom-events

我需要在鼠标离开时显示弹出窗口<body>,这标识了退出意图。

因此,当我的客户输入电子邮件时,弹出窗口恰好在他们的指针悬停在建议上方时出现,而这种情况本不应该发生。但会发生这种情况是因为这部分不在DOM中,所以触发了鼠标离开

但是,当鼠标悬停在浏览器上的本机输入建议上时会触发此事件(我在 Firefox 和 Chrome 上进行了测试)。

那么,有什么想法可以跳过这个假触发器吗?

document.body.onmouseleave = function(e) {
   console.log("mouse leave was trigged")
}
Run Code Online (Sandbox Code Playgroud)

看看发生了什么

在此输入图像描述

小智 2

我遇到了同样的问题,通过查看到底是什么触发了 mouseleave 事件来解决它。因此,如果它不是表单中的输入字段,您可以继续并显示弹出窗口

    $('body').on('mouseleave', function (e) {
        if ('INPUT' !== e.target.nodeName) {
            // do your stuff
        }
    });
Run Code Online (Sandbox Code Playgroud)