回答
这是您的工作代码http://jsfiddle.net/GNQyt/18 我使用了延迟方法。一旦你离开.icn
达到ul
你有1000毫秒。如果您在所需的时间内点击ul
,则淡出它的请求将被删除。
$('.icn').on({
mouseenter: function() {
clearTimeout($(this).data('timeoutId'));
$(this).children('ul').show('fast');
},
mouseleave: function() {
var self = this;
var timeoutId = setTimeout(function() {
$(self).children('ul').hide('fast');
}, 1000);
$(self).data('timeoutId', timeoutId);
}
});
使用了mouseenter,而不是在这种情况下,
这里徘徊是 “的MouseEnter” 的一个不错的互动比较与 “鼠标悬停” http://api.jquery.com/mouseover/
该Demo非常清楚。
这似乎隐藏子完全不过,我想它保持对父母一方或子女悬停状态,并隐藏在鼠标离开,只是抑制闪动时,我搬过来的孩子。 – Brian 2012-02-10 22:52:31
闪烁是由远离绿色框和弹出窗口而产生的。由于您离开了绿色框,计算机之间的距离会导致计算机关闭弹出窗口,但在弹出窗口完全关闭之前,鼠标到达弹出窗口,导致它再次打开。理想情况下,两者应该相交,以允许鼠标直接从框移动到弹出窗口。或者,在关闭弹出窗口之前增加延迟时间。
我会如何准确地增加延迟?使用“setTimeout(function(){$(this).children('ul')。toggle('fast');},200)”似乎完全消除了悬停。 – Brian 2012-02-10 23:09:25
闪烁并不是因为悬停孩子,而是在关闭时捕捉菜单。移动top: 0px; left: 0px;
左上方的菜单解决了这个问题。另外通过height: 500px; width: 500px;
改变跨度的高度和宽度也解决了。为了使高度和宽度有效,将跨度改为div。
不幸的是,该列表是为了从跨度分离。这是一个图标,可以弹出一个对话框,但弹出窗口的其中一个也可以有链接,因此我需要维护悬停。 – Brian 2012-02-10 23:10:35
这里有一个击中格另一种解决方案。这是一个非常黑,但我想你会得到一个感觉出它:)
请记住,
<span>
<div>
</div>
</span>
是非法操作,因为你不应该换块元素为行内元素。
- 1. jquery悬停在孩子的影响其他孩子
- 2. JavaScript - 防止鼠标悬停的孩子,当孩子创建动态的孩子
- 3. jQuery悬停父母影响孩子
- 4. Jquery悬停孩子,否定父项悬停效果
- 5. jQuery悬停奇怪的bug
- 6. 孩子点击事件触发父鼠标悬停事件
- 7. jQuery导航 - 需要显示孙孩子链接上的孩子悬停 - jsfiddle
- 8. 悬停父母更换孩子的孩子
- 9. jQuery的奇悬停事件
- 10. jQuery的 - 上悬停事件
- 11. 当孩子被悬停并点击时的父级样式
- 12. jquery元素上悬停如果孩子有类,孩子做点什么
- 13. jQuery的悬停,让孩子UL和显示
- 14. 更改CSS选择器的孩子悬停在jQuery
- 15. jQuery的,如果再次孩子悬停在
- 16. 怪异的行为悬停事件的jQuery
- 17. 菜单:第一个孩子和:悬停
- 18. CSS:悬停在孩子选择
- 19. CSS第n个孩子悬停问题
- 20. CSS悬停,父母和孩子
- 21. CSS第N个孩子悬停
- 22. jquery count悬停事件
- 23. 延迟jquery悬停事件?
- 24. Jquery鼠标悬停事件
- 25. 悬停事件使用JQuery
- 26. iPhone/iPad悬停事件jQuery
- 27. 奇怪的jQuery悬停行为
- 28. jQuery的悬停在子元素使得古怪的效果
- 29. css悬停元素以显示孩子,当我将鼠标悬停在孩子身上时,如何将悬停CSS保留在父级上?
- 30. Jquery:通过悬停父动画动画孩子宽度
这是您的工作代码 - > http://jsfiddle.net/GNQyt/18/延迟设置为1000毫秒 – danwit 2012-02-10 23:20:44
谢谢,我相信这将是我当前网站的最简单解决方案。 :) – Brian 2012-02-10 23:26:09
欢迎:) – danwit 2012-02-10 23:27:45