我有一个带有一些子元素的元素。当鼠标离开父元素时,我想隐藏父元素及其子元素。我遇到的问题是,当我将鼠标悬停在任何 child 上时,会触发 mouseout 事件。防止这种情况的最佳方法是什么?我真的只希望当鼠标不在父级或其任何子级内时触发事件。
最佳答案
事件从 child 冒泡到 parent (它被捕获的地方)
您应该通过添加监听器并使传播在那里停止来捕获子级的事件。
此代码将阻止事件冒泡到父处理程序
function onMouseLeave(e)
{
if (!e) var e = window.event;
e.cancelBubble = true;
if (e.stopPropagation) e.stopPropagation();
}
问题:鼠标关闭事件是由父级触发的,而它不应该触发。将鼠标悬停在 child 上不应触发鼠标从 parent 身上移开。我们怎样才能阻止这种情况?
关于Javascript MouseOver/MouseOut 子事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2219479/