javascript - mouseLeave 在 native 输入自动填充时触发

标签 javascript html dom browser dom-events

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

因此,当我的客户输入他们的电子邮件时,弹出窗口只是在他们的指针位于建议上方的那一刻出现,而且它不应该发生。但是它发生是因为这部分不在DOM中,所以它触发了鼠标离开

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

所以,任何想法我怎么能跳过这个假触发器 ?

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

看看发生了什么 :

enter image description here

最佳答案

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

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

关于javascript - mouseLeave 在 native 输入自动填充时触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47928052/

相关文章:

javascript - 使用javascript检测浏览器打开的其他窗口的URL

javascript - 正则表达式删除任何不是数字或特定单词的内容

javascript - 通过另一个列表框的值过滤javascript中列表框的值

javascript - jsfiddle Amchart 示例不起作用

HTML 下载链接

javascript - IE10 支持 DOM4 Mutation Observers 吗?

javascript - React native application release build install on Simulator 但不是设备

javascript - 更新 js 模板文本中的变量

jquery - 同样的悬停和焦点在来自不同 div 的两个对齐的表格上

javascript - 如何使用 javascript 以编程方式单击并导航新页面