2012-05-01 2 views
3

曖昧なタイトルで申し訳ありませんが、問題をよく説明して適切なタイトルを見つけることができませんでした。トグルリストでは、項目をクリックすると、項目のサブアイテムだけではなく、すべてのサブアイテムが表示されます。

問題:私はリストをトグルするコードを書いた。それは私がそれを望む方法で動作します。私が 'headcategory'をクリックすると、サブカテゴリなどが開きます。問題は最初に頭部のカテゴリーをクリックすると発生し、すべてのリストが開きます。これは私が望むものではありません。私はそれをもう一度閉じて開きますが、それはすべき方法です。私はそれがなぜそれをするのか理解しようとしていますが、私は手がかりがありません。だから誰かが私を助けることができれば、彼/彼女は非常に高く評価されるだろう。

JQueryコード。

$(document).ready(function() 
{ 
$('ul.subcat').hide(); 

$('li').click(function(event) 
{ 
    event.stopPropagation(); 
    $('ul', this).toggle(); 

}); 
}); 

HTMLコード

あなたが唯一の現在 liをクリックしたの直接の子孫を選択する必要が
<ul class="headcat"> 
    <li>item 1 
    <ul class="subcat"> 
    <li>subitem 1 
    <ul class="subcat"> 
     <li>subsubitem 1 
     <ul class="subcat"> 
     <li><p>text</p></li> 
     </ul> 
     </li> 
     <li>subsubitem 2 
     <ul class="subcat"> 
     <li><p>text</p></li> 
     <li>subsubsubitem 1 
     <ul class="subcat"> 
      <li><p>text</p></li> 
     </ul> 
     </li> 
     <li>subsubsubitem 2</li> 
     </ul> 
     </li> 
    </ul> 
    </li> 
    <li>item 2</li> 
    </ul> 
    </li> 
</ul> 

答えて

4

、これを試してみてください。

$(this).children("ul").toggle(); 

も動作します以下は、しかし、それは最高の考えられていませんその前にプライマリ要素を持たない子孫セレクタを使用するように練習してください。

$('> ul', this).toggle(); 

Example fiddle

+0

感謝を。それは確かに私が必要なすべてです。あなたの答えはすぐに正しいとマークされます! –

+0

ありがとう、喜んで助けてください。 –

関連する問題