2010-12-14 212 views
0

我的問題是:jQuery的下拉菜單懸停狀態

我有一個下拉菜單,我想,當我將鼠標懸停在菜單中的文本顏色的變化,當我將鼠標懸停在子菜單懸停狀態保持兩個。我使用此代碼:

$("ul li").hover(function() { 

    $(this).stop().animate({ backgroundColor: "white"}, 500); 

}, 
function() { 

    $(this).stop().animate({ backgroundColor: "black"}, 400); 

}); 

} 

在菜單和子菜單中懸停時爲背景顏色設置動畫效果。

我想改變懸停文字的顏色(不同的菜單和子菜單,不同的顏色動畫)。爲此,我用這個代碼:(子菜單例如,對於菜單例如,更改選擇器$(「ul.menu李一」)

$('ul.submenu li a').hover(function() { 

$(this).css({color:'#FFFFFF'}); 

}, 
function() { 

$(this).css({color:'#00FF00'}); 

}); 

所有這工作得很好,但是當我將鼠標懸停在子菜單返回原來的顏色狀態(因爲鼠標離開時菜單上激活懸停出)。

所有我想要的是,當我將鼠標懸停在子菜單菜單懸停狀態保持活動狀態爲好。

我試過很多東西但所有給我的問題,只有那件作品是CSS,但我也需要控制文本顏色dinamically也。

CSS的作品:

ul li:hover a { 
    color: #FFF; 
} 

(這個CSS代碼我控制與CSS菜單的顏色,當我徘徊在子菜單保持在活躍狀態,但子菜單與jQuery .hover作品) 。

任何人都可以幫忙嗎?謝謝!

HTML菜單:

<ul class="menu"> 

     <li><a href="#">text</a></li> 

     <li><a href="#">text</a> 

     <ul class="submenu"> 
      <li><a href="#">text</a></li> 
      <li><a href="#">text</a></li> 
      <li><a href="#">text</a></li> 
     </ul> 

     </li> 

     <li><a href="#">text</a> 

</ul> 
+0

你能提供完整的代碼和菜單的標記嗎?很難了解正在嘗試部署的內容。 – DeaconDesperado 2010-12-14 15:37:21

+0

我用Html Markup編輯我的問題。謝謝 – Sbml 2010-12-14 15:46:46

回答

0

如果你想徘徊,直到你懸停其他一些利,利用班設置當前顏色。

CSS:

ul.submenu li a { color: #0f0; } 
ul.submenu li a.hovered { color: #fff; } 

JS:

$('ul.submenu li a').mouseover(function() { 
    if (!$(this).hasClass('hovered')) { 
     $('ul.submenu li a.hovered').removeClass('hovered'); 
     $(this).setClass('hovered'); 
    } 
}); 

我希望我理解正確你。祝你的項目好運。

[編輯]

哦HM,也許你想它,所以當你走下車到子菜單,你的父母李應不失去它的顏色,儘管你鼠標移動了。如果是這樣,同樣的想法是適用的,你只需要鼠標懸停代碼來選擇菜單項mouseover(所以在菜單上移動鼠標懸停所有其他菜單,並設置這一個),那麼你也需要刪除你的菜單的類顏色,如果你將鼠標移出其子菜單的ul。我不知道你的菜單看起來像結構化的,所以我不能評論這個選擇器的工作CSS。

哦,最後你會想有一個CSS規則與子菜單懸停來處理你的子菜單的突出顯示。

對不起,這個散亂的答案...

+0

你好,我的懸停狀態適用於菜單和子菜單,不同的顏色和背景顏色的動畫,我唯一的問題是當我懸停菜單項,顏色變化,如果我去子菜單的顏色回到原來的顏色,這是我的問題。如果我把你的代碼只適用於鼠標懸停,我有同樣的問題,但謝謝! – Sbml 2010-12-14 16:00:19

+0

啊,我剛剛看到你的回覆 - 我認爲你應該可以使用$('ul.menu li')。mouseout來關閉你的ul.menu li a的課程 - 這應該覆蓋整個菜單+子菜單,因爲li包含整個子菜單。 – btx 2010-12-14 16:01:20

+0

如果我不清楚,你想a)通過添加類來處理菜單li a'.mouseover,b)通過添加你想要的css hover類來處理子菜單,以及c)處理菜單外的鼠標或子菜單通過捕獲$('menu li')。mouseout和使用:$(this).children('ahovered')。removeClass('hovered') – btx 2010-12-14 16:02:24