Javascript MouseOver/MouseOut子事件
我有一个元素和一些子元素。当鼠标离开父元素时,我想隐藏父元素及其子元素。我遇到的问题是,当我悬停在任何一个孩子身上时,mouseout事件被触发。最好的预防方法是什么?我真的只希望当鼠标不在父级或其任何子级内时触发事件。事件从子级冒泡到父级(捕获它的位置) 您应该通过添加一个侦听器并使传播停止在那里来捕获子事件 此代码将阻止事件冒泡到父处理程序Javascript MouseOver/MouseOut子事件,javascript,events,mouseover,children,mouseleave,Javascript,Events,Mouseover,Children,Mouseleave,我有一个元素和一些子元素。当鼠标离开父元素时,我想隐藏父元素及其子元素。我遇到的问题是,当我悬停在任何一个孩子身上时,mouseout事件被触发。最好的预防方法是什么?我真的只希望当鼠标不在父级或其任何子级内时触发事件。事件从子级冒泡到父级(捕获它的位置) 您应该通过添加一个侦听器并使传播停止在那里来捕获子事件 此代码将阻止事件冒泡到父处理程序 function onMouseLeave(e) { if (!e) var e = window.event; e.cancelBub
function onMouseLeave(e)
{
if (!e) var e = window.event;
e.cancelBubble = true;
if (e.stopPropagation) e.stopPropagation();
}
问题:mouse off事件是由父级触发的,但不应该触发。将鼠标移到子对象上不应触发父对象的鼠标。如何停止此操作?您只需要将鼠标移出处理程序连接到父元素。但是 您需要检查父对象是否确实是mouseout事件的目标,而不是从其中一个子对象冒泡出来的事件。检查event.target(W3C)和event.srcElement(IE) 您还需要检查鼠标将要输入的元素是否不是父元素的后代。检查event.relatedTarget(W3C)和event.toElement(IE) 来自:
mouseover
在指针移动到子元素时触发,而mouseenter
仅在指针移动到绑定元素时触发
同样的情况也适用于
mouseout
vsmouseleave
我想你的意思是你的mouseover
/mouseout
有问题mouseenter
和mouseleave
是专门为不按您所描述的方式工作而设计的。是的,我的错。我的意思是mouseover/mouseout这个问题与我提出的这个问题非常相似