2010-08-17 56 views
0

理想情況下,我想將鼠標懸停在我的<li>我的菜單上,並突出顯示每個<li>,但作爲測試,我有以下更改懸停類。任何想法爲什麼這不起作用?jQuery .addClass不會更改css

非常感謝。

.dropdownhoverIn a:hover 
{ 
    background-color: White; 
    color: #39C; 
} 

<form id="form1" runat="server"> 
     <div id="multiDropMenu"> 
      <ul id="menu"> 
       <li><a href="#" id="places">Places</a> 
        <ul id="dropdown1"> 
         <li><a href="http://google.com">To Go</a></li> 
         <li><a href="#">To See</a></li> 
        </ul> 
       </li> 
       <li><a href="#">Transportation</a></li> 
      </ul> 
     </div> 
    </form> 

$(document).ready(function() { 
    $("#menu li").hover(function() { 
     $(this).find("ul").find("a").hover(function() { 
      $(this).addClass("dropdownhoverIn"); 
     }); 
     $(this).find("ul").slideToggle(250); 
    }); 
}); 

回答

0

擺脫了 「內部」 .hover()分配,

$("#menu > li").hover(function() { 
    $(this).find("ul a").addClass("dropdownhoverIn"); 
    $(this).find("ul").slideToggle(250); 
});​ 

和你們班:hover僞選擇。

.dropdownhoverIn { 
    background-color: White; 
    color: #39C; 
}​ 

試試看:http://jsfiddle.net/GKZRU/

當你調用.hover()函數的參數,你分配的處理程序。每次在<ul>上盤旋都沒有理由這樣做。

如果你使用的是jQuery的.hover(),你並不需要它在CSS中。如果你想要兼容性,你需要一個單獨的CSS選擇器。

我還將>添加到.hover()的選擇器,因爲我假定您只希望它激活#menu的孩子。

+0

我也修復了css類。 – EKet 2010-08-17 23:05:25

+0

@Ehsan - 當你說它不工作時,你的意思是什麼?我看到我的示例中文字的顏色發生了變化。我不知道你的最終結果應該是什麼樣子。 – user113716 2010-08-17 23:10:13

+0

不幸的是,我的意思是,沒有顏色變化沒有發生在我的本地機器上。我正在運行IE 7 ......不知道發生了什麼,這在我的環境中是不同的。 – EKet 2010-08-17 23:14:20