mouseLeave在本机输入autofil上触发

时间:2017-12-21 15:27:53

标签: javascript html dom browser dom-events

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

因此,当我的客户正在键入他们的电子邮件时,弹出窗口就会出现在他们的指针超过建议的确切时刻,并且它不会发生。但它发生是因为这部分不在DOM中,所以它会触发鼠标离开

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

那么,任何想法如何跳过这个假触发器

document.body.onmouseleave = function(e) {
   console.log("mouse leave was trigged")
}

看看会发生什么

enter image description here

1 个答案:

答案 0 :(得分:0)

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

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