2010-12-14 19 views
0

私の問題は、次のとおりです。jQueryのドロップダウンメニューのホバー状態

私は、ドロップダウンメニューを持っていると私は、メニューにテキストの色の変化を置いて、ときに私はサブメニューを置くとホバー状態は両方のためにとどまることを望みます。このコードを使用します:

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

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

}, 
function() { 

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

}); 

} 

メニューとサブメニューのホバーの背景色をアニメーション化するには:

ホバー上のテキストの色を変更したい(同じカラーアニメーションではなく、メニューとサブメニューでは異なる)。私はこのコードを使用します。この場合:(サブメニューの一例を、メニューたとえば、$(「ul.menu李のA」)

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

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

}, 
function() { 

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

}); 

すべてこれは正常に動作しますが、私はサブメニューメニューリターンを置くと、セレクタを変更元の色の状態に

私が欲しいのは、私はメニューにホバー状態のサブメニュー置くと、アクティブにもとどまることである。(mouseleaveは、メニュー上で活性化されるため、アウトホバー)私は多くのことを試してみましたしかし、すべて私に問題を与える、動作するものは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

+0

私はHtml Markupで質問を編集します。ありがとう – Sbml

答えて

0

あなたはいくつかの他のLi、使用クラスを置くまで、現在の色を設定するためにホバーしたい場合。

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ああ、多分あなたは、あなたがサブメニューにオフに行くとき、それはそう、あなたの親李はあなたが出てマウス操作にもかかわらず、その色を失うべきではありませんします。そうであれば、同じ考え方が適用できます。マウスオーバーコードでメニュー項目のマウスオーバーを選択するだけです(メニューの上にマウスを移動すると他のすべてのメニューが設定されなくなります)。サブメニューのulの外にマウスを置くと、メニューのクラスの色が変わります。あなたのメニューが構造的にどのようなものかわからないので、このセレクタの動作するCSSについてコメントすることはできません。

ああ、最後に、サブメニューの強調表示を処理するためのCSSルールとサブメニューのホバーが必要です。

すっきりした答えに申し訳ありません...

+0

こんにちは、私のホバー状態は、メニューとサブメニューの両方の色と背景色のアニメーションで動作します、私の唯一の問題は、私がサブメニューのメニューに行くと、メニュー項目を色分けするときです。元の色に戻るこれは私の問題です。あなたのコードをマウスオーバーでのみ動作させると、同じ問題が発生しますが、ありがとうございます! – Sbml

+0

ああ、私はちょうどあなたの反応を見ました - あなたは$( 'ul.menu li')を使うことができると思います。mouseoutはあなたのクラスをオフにします - メニューとサブメニュー全体をカバーする必要があります。サブメニュー全体。 – btx

+0

私は明確ではない場合は、a)クラスを追加することによってメニューを操作する、b)必要なcss hoverクラスを追加してサブメニューを処理する、c)メニューからマウスを操作する、 $( 'menu li')をキャプチャしてサブメニューを開きます。mouseoutとusing:$(this).children( 'a.hovered')removeClass( 'hovered') – btx

関連する問題