2011-07-12 55 views
1

我遇到以下問題。我有一個CSS下拉導航,如果在導航的下拉部分有一個鼠標懸停,我希望「導航標題」的背景能夠保持其懸停時獲得的背景顏色。問題是,如果用戶繼續前進並懸停在下拉菜單上,則「導航標題」的懸停狀態將恢復爲「正常」。這就是爲什麼我認爲我可以使用jQuery來改變它。使用jquery獲得之前的p標記以更改背景

但不幸的是我不知道如何選擇特定元素。

下面是導航的例子:

<ul> 
        <li> 
         <p class="naviHead first">Finanzen</p> 
          <ul> 
           <li><a href="http://www.spardaxx.de/kredit" title="SparDaxx Ratenkredit">Ratenkredit</a></li> 
           <li><a href="http://www.spardaxx.de/baufinanzierung" title="SparDaxx Baufinanzierung">Baufinanzierung</a></li> 
           <li><a href="http://www.spardaxx.de/altersvorsorge" title="SparDaxx Riester Rente">Riester Rente</a></li> 
          </ul> 
        </li> 
       </ul> 

因此,如果用戶將鼠標懸停在p標籤,下拉UL打開。現在我想改變p的背景色,如果有人懸停在以下UL ..

,這裏是我的jQuery到目前爲止

$().ready(function() { 
      $('#TopNav ul ul').mouseover(function() { 
       $(this).parents('p.naviHead').filter(':first').css("background", "black"); 


      }) 
     }); 

我猜的解決方案,我很簡單,但我不知道。所以,任何幫助表示讚賞。謝謝! :)

回答

2
$(this).prev().css("backgroundColor", "black"); 

,或者如果你有那麼一個更復雜的佈局 -

$(this).parent().find('p.naviHead').css("backgroundColor", "black"); 

可能會更好

+0

非常感謝您! :) – Sebsemillia

+0

Thx!你有什麼想法我可以做到這一點,如果用戶再次離開ul,父p的css可以回到它以前的「默認css值」? – Sebsemillia

+0

自己找到了解決方案!謝謝! :) – Sebsemillia

1
$(this).siblings('p.naviHead').css("background", "black"); 

$('#TopNav ul ul').mouseleave(function() { 
    $(this).parent().find('p.naviHead').css("backgroundColor", "yourPreviosColor"); 
}) 
+0

不,這不是我正在尋找的,因爲我也有一個背景圖片,必須回來..但你不知道。我發現了一個有效的解決方案自己.. .mouseout(函數(){ \t \t \t \t \t $(本).prev()的CSS( 「背景」, 「」); \t \t \t \t \t \t \t \t})但是非常感謝你! :) – Sebsemillia

+0

U R歡迎! :) – Webars