回答
這是您的工作代碼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