0

ドロップダウンナビゲーション、ネストされたリストの基本的なマークアップがあります。

ユーザーが上部のナビゲーション項目をクリックすると、サブ ナビゲーションが開きますが、サブ ナビゲーション リンクが機能しません。

CMS 内にあるため、そこにプレースホルダー ページへのリンクが必要です。

マークアップ:

<ul class="navtop">
<li><a href="">Who</a>
  <ul>
     <li><a href="">Sub Item 1</a></li>
     <li><a href="">Sub Item 2</a></li>
     <li><a href="">Long Sub Item 3</a></li>
     <li><a href="">Sub Item 4</a></li>
  </ul>
</li>
<li><a href="">What</a>
  <ul>
     <li><a href="">Sub Item 1</a></li>
     <li><a href="">Sub Item 2</a></li>
     <li><a href="">Long Sub Item 3</a></li>
     <li><a href="">Sub Item 4</a></li>
  </ul>
</li>
</ul>

Javascript:

$(".navtop li").click(function(){
    $(this).toggleClass("show");        
    $(this).siblings(".show").toggleClass("show");
    return false;
});

CSS:

#headernav .navtop li.show ul
{
display: block;
}

$(".navtop li ul li a") に 'return true' を追加しようとしましたが、うまくいきませんでした。提案?

4

2 に答える 2

0

これがうまくいったことがわかりました:

$(".navtop > li > a").click(function(){
    $(this).parent('li').toggleClass("show");       
    $(this).parent('li').siblings(".show").toggleClass("show");
    return false;
});
于 2009-03-25T21:21:38.793 に答える
0

LI クリックに false を返すのはなぜですか? それが問題だと思います。

それを取り除けば、すべてがうまくいくはずです。

それがうまくいかない場合は、最上位の LI だけでなく、すべての LI にクリック イベントを追加していることに注意してください。代わりにこれを試してください:

$(".navtop > li").click(function(){
        $(this).toggleClass("show");            
        $(this).siblings(".show").toggleClass("show");
});
于 2009-03-25T21:15:05.283 に答える