2011-12-21 2 views
0

再び。私は自分が作っているメニューを持っています。メインカテゴリの1つをクリックすると、ページが先頭に戻るという点を除いて、すべて正常に機能します。これを防止したいと思いますが、preventDefault()を使用すると他のリンクが正しく読み込まれなくなります。jqueryスライドメニュー

ここでコードが..です

jQueryの

$(document).ready(function() { 
    // Collapse everything but the first menu: 
    $("#nav_menu > li > a").find("+ ul").slideUp(1); 
    // Expand or collapse: 
    $("#nav_menu > li > a").click(function() { 
     $(this).find("+ ul").slideToggle("fast"); 
    }); 
}); 

マークアップ

<ul id="nav_menu"> 
    <li><a href="#">Main Cat 1</a> 
     <ul> 
      <li><a href="whatever.php">Subcat 1</a></li> 
      <li><a href="whatever.php">Subcat 2</a></li> 
     </ul> 
    </li> 
    <li><a href="#">Main Cat 2</a> 
     <ul> 
      <li><a href="whatever.php">Subcat 1</a></li> 
      <li><a href="whatever.php">Subcat 2</a></li> 
     </ul> 
    </li> 
</ul> 

この上の任意の助けいただければ幸いです! :)

答えて

2

要素がhrefをトリガーしないように、preventDefault関数を呼び出す必要があります。

$(document).ready(function() { 
    // Collapse everything but the first menu: 
    $("#nav_menu > li > a").find("+ ul").slideUp(1); 
    // Expand or collapse: 
    $("#nav_menu > li > a").click(function(e) { 
     e.preventDefault(); 
     $(this).find("+ ul").slideToggle("fast"); 
    }); 
}); 
+0

サブリンクのページの読み込みを停止しませんか? – chaoskreator

+0

メインセクションのみ... –

+0

ああ、はい。私はそれが今どのように動作するかを見ます。ありがとうございました! – chaoskreator

関連する問題