2012-12-06 60 views

回答

0

這個帖子有被en從此線程刪除

0

只要嘗試在您的h using上使用延遲。

$('#user_settings_dropdown').dealy(1000).animate({height:['toggle', 'swing'] 
     }, 225); 
+0

雖然,這是有用的,菜單會在延遲後消失,無論用戶的光標是否在菜單中。當用戶的光標懸停在菜單中時,我正在尋找一些可以保持菜單處於活動狀態的東西。感謝您的建議,但我可以使用.delay()執行其他任務:) –

0

什麼我發現在這種情況下,最好的辦法是封閉菜單觸發和菜單身體的包裝和hoverIntent應用到。當你的菜單被隱藏時,包裝是觸發元素的大小。當顯示菜單時,包裝也將包括所有可見菜單,允許用戶點擊菜單中的任意位置。

這是基於你的代碼精簡例如:http://jsfiddle.net/irobinson/HeDSR/2/

HTML

<div id="menu-wrap"> 
<a href="#" class="user_profile_btn" title="Your profile page"> 
    <div class="arrow_down">Down arrow</div> 
</a> 
<ul id="user_settings_dropdown"> 
    <li><a href="#"><div>View profile</div></a></li> 
     <div class="grey_line"></div> 
     <li class="settings_list_item">Item a</li> 
     <li class="settings_list_item">Item b</li> 
     <li class="settings_list_item">Item c</li> 
    </ul> 
    </li> 
</div>​ 

的JavaScript

$('#menu-wrap').hoverIntent(function() { 
    $('#user_settings_dropdown').show(); 
}, 
function() { 
    $('#user_settings_dropdown').hide(); 
});​ 

CSS

#user_settings_dropdown{display:none;} 
#menu-wrap{width:100px;}​ 
+0

或者(或者另外)也可以在實際菜單的hoverOut上添加一個hide()動畫。這將涵蓋他們將鼠標懸停在觸發器上,然後下移到菜單並返回到觸發器(可能會感覺更自然)的情況。示例:http://jsfiddle.net/irobinson/HeDSR/4/ –

+0

感謝您的支持答案,我結束了使用setTimeout和clearTimeout去不同的路線。感謝您的解決方案雖然:) –