jquery の slideDown/slideUp/slideToggle 関数を使用して、これらの折りたたみ可能な要素をクリックしたときにアニメーション化する方法があるかどうかを調べようとしています。要素の HTML レイアウトのスニペットを次に示します。
<ul>
<li class="category1"><a href="#"></a></li>
<ul>
<div class="tag1">
<li class="cat2"><a href="#">derp</a></li>
<li class="cat2"><a href="#">derp</a></li>
<li class="cat2"><a href="#">derp</a></li>
</div>
</ul>
<li class="category2"><a href="#"></a></li>
<ul>
<div class="tag2">
<li class="cat2"><a href="#">derp</a></li>
<li class="cat2"><a href="#">derp</a></li>
<li class="cat2"><a href="#">derp</a></li>
</div>
</ul>
<li class="category3"><a href="#"></a></li>
<ul>
<div class="tag3">
<li class="cat2"><a href="#">derp</a></li>
<li class="cat2"><a href="#">derp</a></li>
<li class="cat2"><a href="#">derp</a></li>
</div>
</ul>
</ul>
これが私が試したJavaScriptコードです。動作しますが、非常に長いです。同じことを達成するためのより効率的な方法があるかどうか疑問に思っています。
$('.category1').click(function(){
$('.tag1').slideToggle('200');
$('.tag2').slideUp('200');
$('.tag3').slideUp('200');
return false;
});
$('.category2').click(function(){
$('.tag1').slideUp('200');
$('.tag2').slideToggle('200');
$('.tag3').slideUp('200');
return false;
});
$('.category3').click(function(){
$('.tag1').slideUp('200');
$('.tag2').slideUp('200');
$('.tag3').slideToggle('200');
return false;
});