我有一個水平菜單,這是由JQuery的動畫:jQuery的動畫菜單#懸停功能()
問題(S): 我一個有一個 '當前的' 父項,其應顯示ul。如果我懸停另一個父項目,則應隱藏當前顯示的ul。如果懸停()是「已完成」,那麼將會顯示懸浮物的一個形式並淡出。所有這些都不起作用,就像它應該那樣。你可以在jsfiddler上看到代碼。 請嘗試懸停'Moda',你會看到問題。
許多在此先感謝, 拉爾斯
我有一個水平菜單,這是由JQuery的動畫:jQuery的動畫菜單#懸停功能()
問題(S): 我一個有一個 '當前的' 父項,其應顯示ul。如果我懸停另一個父項目,則應隱藏當前顯示的ul。如果懸停()是「已完成」,那麼將會顯示懸浮物的一個形式並淡出。所有這些都不起作用,就像它應該那樣。你可以在jsfiddler上看到代碼。 請嘗試懸停'Moda',你會看到問題。
許多在此先感謝, 拉爾斯
jQuery("#headnav_primary .top-item").hover(
function(){
jQuery('.current-menu-item ul').hide('fast');
jQuery(this).find('ul').show('slow');
},
function() {
jQuery(this).find('ul').hide('fast');
});
類的頂級項目「添加到您的標題裏的鏈接。
根據您需要使用哪種瀏覽器,有幾種方法可以使子菜單顯示出來。
您可以將JavaScript jQuery代碼更改爲以下內容,當輸入任何<li>
時,它將簡單地隱藏所有的子菜單,並顯示當前的<li>
的子菜單。
var subMenus = $("#headnav_primary li ul");
$("#headnav_primary li").mouseenter(function() {
subMenus.hide();
$(this).children('ul').show('slow');
}).mouseleave(function() {
subMenus.hide('fast');
});
或者完全刪除所有的JavaScript和只添加當父<li>
盤旋,顯示子菜單這個簡單的CSS規則。
#headnav_primary li:hover ul {
display:block !important;
}
注:這不會在舊的瀏覽器,尤其是IE6工作。另外,我添加了!important
,因爲您目前在優先級爲sub-menus的子菜單上內嵌了style="display:none"
。如果刪除內聯樣式,則可以刪除!important
。
編輯:這裏是a better demo是只有使用CSS。這在IE6中不起作用,因爲它只支持:hover
對錨標籤。如果你需要IE6的支持,我可以更新,但會使用jQuery。
哪些瀏覽器需要此功能?具體來說,是否需要IE6支持? – andyb 2011-06-01 06:03:23