0

2nd level menu 3 」がフライアウトであるこのフライアウトメニューがあります。メニューは CMS システムによって生成されるため、新しいクラスを特定のメニュー項目に直接追加することには制限があります。

デフォルトでは、第 1 レベルのメニューにはアンカー タグの「最上位」クラスがありますが、第 2 レベルと第 3 レベルにはありません。私が達成したいのは、「トップレベル」をターゲットにして「第2レベルメニュー3」を見つけて「現在の」クラスを追加することです。これにより、フライアウトメニューが展開され、カーソルが第3レベルに移動すると、「第2レベルmenu 3" は、ホバーと同じ白い背景色です。

コードは jQuery('#nav ul').find('> a.level-top').parent('li').addClass('current')}); です。しかし、それは機能しておらず、自分が間違っていたことを見つけることに頭を悩ませることはできません。

 $(document).ready(function(){
    $("#nav li li").hover(function(){
        $(this).find('ul:first').css({visibility: "visible",display: "none"}).show(400);
        },function(){
        $(this).find('ul:first').css({visibility: "hidden"});
        });
    });
  $(document).ready(function(){
      jQuery('#nav ul').find('> a.level-top').parent('li').addClass('current')});
4

1 に答える 1

1

find 関数で親セレクター「>」を削除します。

私はそれにもっと似た方法でアプローチします

$('>li>ul>li').parent('ul>li').hover(function(){
    $(this).css(backgroundColor: 'red'

しかし、あなたがその相棒をする前に、あなたのリストコードはめちゃくちゃです. リスト項目を閉じることを忘れないでください。このコードを自動生成する CMS を使用している場合は、別の方法を試してください :)

于 2011-03-30T04:57:17.160 に答える