超过孩子时会触发JavaScript mouseout

时间:2011-11-24 12:32:49

标签: javascript javascript-events mouseout

我正在使用菜单到我的网站,我需要用户来回显示/隐藏子菜单+动画。

我收到了以下代码: http://jsfiddle.net/JyTPW/

当我鼠标悬停“产品”然后转到子元素时,会触发mouseout。我试图解决它,但我失败了。 我阅读了有关检查reltarget等的所有帖子,但仍然无法使其正常工作。

我真的很感谢你的帮助。

修改
经过长时间的搜索,我找到了Cross-browser event registration,提供了mouseenter和mouseleave 它解决了我的问题。

2 个答案:

答案 0 :(得分:4)

好吧,如果你考虑一下,它会按预期进行。但不像程序员那样。微软竭尽所能做你想做的事。其他人,没有。 解决方案?使用jQuery并收听自定义mousenter/mouseleave event

答案 1 :(得分:0)

查看jQuery源代码(开源是最好的),您可以看到它们是如何实现的。

https://github.com/jquery/jquery/blob/91824bd2923b99b03fd1a9c4447b46fd7cc96615/src/event.js#L659

虽然在处理程序中使用了一些jQuery API,但您可以清楚地看到它是如何工作的。它检查mouseover事件对象并检查relatedTarget是否是元素本身或后代。如果是,则调用回调触发器mouseleave。