如何根据光标移动到*的元素更改jQuery .mouseleave()的行为
How do I alter behaviour of jQuery .mouseleave() based on the element the cursor moves *to*?
大家好,我整理了一个简单的下拉菜单系统,该系统使用悬停意图来显示子菜单,并显示灯箱样式的"熄灯"深色背景。
我已经让菜单正常工作,但我想更新它,所以如果你从一个项目移动到下一个项目,深色背景会留在原地,而不是消失并重新出现。
我创建了一个jsFiddle,所以你可以看到我在说什么:http://jsfiddle.net/gGd6Y/10/
尝试将鼠标悬停在菜单项 1 上,然后移动到菜单项 2。
我希望能够在调用 HoverIntent 的 .mouseleave() 部分看到鼠标光标移动到的元素,然后如果它是另一个菜单项,我会阻止深色背景被关闭。
以HTML目前的设置方式,无法完成。阴影覆盖其他可悬停元素。因此,当您mouseleave
时,您将悬停在阴影上,而不是其他LI。
我提出的解决方案:http://jsfiddle.net/iambriansreed/k98LP/
我让菜单出现在阴影上方。我延迟了阴影淡出操作,并确保在实际淡出之前没有悬停其他菜单项。
看看这是否有帮助:http://jsfiddle.net/gGd6Y/11/
我已经更改了菜单项以保持在覆盖层的顶部。
编辑:
我在上一条评论中提出的解决方案:
http://jsfiddle.net/gGd6Y/16/
简单的解决方案是将mouseleave侦听器添加到所有项目的容器中。
更灵活的解决方案是存储每个元素is_element_hovered
布尔值。当发生mouseleave事件时,设置小延迟,然后检查布尔值并正确设置背景动画。
相关文章:
- jQuery"或“;操作员没有处理mouseleave
- jquery mouseenter - mouseleave not working
- jQuery mouseenter() 和 mouseleave() 无法正常工作
- 如何使用if hasClass条件禁用jQuery mouseleave事件?//悬停动画
- WordPress中的jQuery-在mouseenter和mouseleave事件上进行字体反转
- Jquery mouseenter mouseleave工作不正常
- jQuery - Mouseenter / Mouseleave Parent / Child Issue
- JQuery 在 mouseenter 和mouseleave 上无法正常工作
- Jquery mouseleave & mouseenter issue
- jQuery mouseLeave 在 IE 中过早触发(8 和 9)
- 如何根据光标移动到*的元素更改jQuery .mouseleave()的行为
- jQuery 超时函数从未在 mouseEnter mouseleave 上调用过
- jQuery 检测鼠标是否在 mouseenter 和mouseleave之间单击
- JS/jQuery - 当我再次启动鼠标悬停时重置 MouseLeave
- jQuery mouseleave IE not working
- jQuery-无法获取悬停函数(mouseleave)中的变量
- 在MouseLeave JQuery上清除轮廓
- jquery.mouseenter()问题jquery.mouseleave()和子元素
- Jquery mouseleave setTimeout don't work
- jQuery mouseleave在拖动时没有正确触发