2010-12-28 15 views
1

私はかなり標準的なCSSベースのドロップダウンメニューを持っています。主なリストは "#mainNav"で、ドロップダウンは単に "mainNav ul"です。 "mainNav ul"は最初はnoneの表示を持ち、親li上にマウスを置くとその表示はブロックに設定されます。ネストされたulが表示されたら、クラス "hilite"を追加します(これはa:hover属性と同じです)。ドロップダウンが表示されたときに親liが強調表示されます。ドロップダウンが表示されている場合、親liにクラスを追加

$(function(){ 
    if($('#mainNav ul').css({display: "block"})){ 
     $("#mainNav li:nth-child(3)").addClass("hilite"); 
    } 
}); 

HTML

<ul id="mainNav" class="clearfix"> 
     <li><a href="contact.php" target="_self">CONTACT</a></li> 
     <li><a href="events.php" target="_self">EVENTS</a></li> 
     <li><a href="current-line.php" target="_self">CURRENT LINE</a> 
      <ul> 
       <li><a href="#" target="_self">2009 Fall</a></li> 
       <li><a href="#" target="_self">2009 Spring</a></li> 
       <li><a href="#" target="_self">2008 Fall</a></li> 
       <li><a href="#" target="_self">2008 Spring</a></li> 
      </ul> 
     </li> 
     <li><a href="shop.php" target="_self">SHOP</a></li> 
     <li><a href="press.php" target="_self">PRESS</a></li> 
     <li><a href="bio.php" target="_self">BIO</a></li> 
     <li><a href="index.php" target="_self">HOME</a></li> 
    </ul> 
+1

はまたあなたのHTMLを投稿してください。 –

答えて

3

はの線に沿って何かしてみてください:ネストされたulが表示されているときliをターゲット

$("#mainNav ul li ul").hover(
    function(){ // Mouse Over 
    $(this).parent().addClass("hilite"); 
    }, 
    function(){ // Mouse Out 
    $(this).parent().removeClass("hilite"); 
    } 
); 
+0

私はこれを( "#mainNav ul")に変更してネストされたulを単にターゲットにしてから、 "li#mainNav li.hilite> a"に変更しました。 '李の中に'それが動作します。よりクリーンなやり方があるか、これをやるべき別の方法がありますか? –

+0

私はいくつかの異なる方法を試してきましたが、いつもこれに戻ります。私が何か知っていることがわかったら、私はいつも新しい方法を学びたいと思っています。 – PseudoNinja

関連する問題