Javascript mouseLeave在本机输入autofil上触发
当鼠标离开Javascript mouseLeave在本机输入autofil上触发,javascript,html,dom,browser,dom-events,Javascript,Html,Dom,Browser,Dom Events,当鼠标离开时,我需要显示我的弹出窗口,这表示退出意图 因此,当我的客户键入他们的电子邮件时,弹出窗口正好在他们的指针指向建议的时候出现,而这不应该发生。但这是因为该部分不在DOM中,所以会触发鼠标离开 但是,当鼠标位于浏览器上的本机输入建议上时,会触发此事件(我在Firefox和Chrome上进行了测试) 那么,有什么办法可以跳过这个假触发器吗 document.body.onmouseleave = function(e) { console.log("mouse leave was t
时,我需要显示我的弹出窗口,这表示退出意图
因此,当我的客户键入他们的电子邮件时,弹出窗口正好在他们的指针指向建议的时候出现,而这不应该发生。但这是因为该部分不在DOM中,所以会触发鼠标离开
但是,当鼠标位于浏览器上的本机输入建议上时,会触发此事件(我在Firefox和Chrome上进行了测试)
那么,有什么办法可以跳过这个假触发器吗
document.body.onmouseleave = function(e) {
console.log("mouse leave was trigged")
}
看看发生了什么事:
我遇到了同样的问题,通过观察到底是什么触发了mouseleave事件,我解决了这个问题。因此,如果它不是表单中的输入字段,则可以继续并显示弹出窗口
$('body').on('mouseleave', function (e) {
if ('INPUT' !== e.target.nodeName) {
// do your stuff
}
});
在你的输入上设置一个
mouseLeave
,而不是在你的文档上。body
可能重复@KolaCaine,当鼠标离开body时,我需要显示我的弹出窗口,显示退出意图,因此当我的客户键入他们的电子邮件时,弹出窗口正好在他们的鼠标指针指向建议的时候出现。这是因为这部分不在DOM中,所以会触发鼠标离开。@FabricioJeanSilva它怎么不在DOM中?你不是叫它跳出来的吗?如果您有权访问下拉列表,请向其添加am id,然后为您的函数设置一个异常,如果它位于该id内,则不会触发。@krizpers自动填充(下拉列表)不在DOM中,它是为浏览器提供的,我无权获取它(至少我不知道如何获取),因此对于主体,它是一个鼠标离开事件。