我有一个带有一些子元素的元素。当鼠标离开父元素时,我想隐藏父元素及其子元素。我遇到的问题是,当我将鼠标悬停在任何 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/

10-13 08:02
查看更多