JavaScript mouseout在经过儿童时触发

JavaScript mouseout triggered when over children

本文关键字:mouseout 经过 JavaScript      更新时间:2023-09-26

我正在工作菜单到我的网站,我需要用户over/out显示/隐藏子菜单+动画。

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

当I mouseover"产品";然后转到子元素,mouseout被触发。我想修好它,但失败了。我读了所有关于检查重新目标等的帖子,但我仍然未能使其工作。

我非常感谢你的帮助。

编辑:
经过长时间的搜索,我发现跨浏览器事件注册提供mouseenter和mouseleave。

嗯,如果你仔细想想,它正在做预期的事情。但这并不是程序员所喜欢的。微软走的是你想做什么就做什么的路。其他人都没有。解决方案?使用jQuery监听自定义mousenter/mouseleave事件

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

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

虽然一些jQuery api在处理程序中使用,你可以清楚地看到它是如何工作的。它检查mouseover事件对象,并检查relatedTarget是元素本身还是其子元素。如果是,则调用回调触发器mouseleave。