ul an li で作成したメニューがあり、アンカーでクリック イベントがトリガーされたときに他のサブメニューを非表示にしようとしています。HTMLメニューはこんな感じ
<ul id="navigation">
<li>
<a href="javascript:void(0)">link 1</a>
<ul class="subnavi">
<li><a href="#">sublink 1</a></li>
<li><a href="#">sublink 2</a></li>
</ul>
</li>
<li>
<a href="javascript:void(0)">link 2</a>
<ul class="subnavi">
<li><a href="#">sublink 3</a></li>
<li><a href="#">sublink 4</a></li>
</ul>
</li>
<li class="active">
<a href="javascript:void(0)">link 3</a>
<ul class="subnavi">
<li><a href="#">sublink 5</a></li>
<li><a href="#">sublink 6</a></li>
</ul>
</li>
<li>
<a href="#">link 4</a>
</li>
</ul>
CSSコードは次のようになります
#navigation li ul{ display: none;}
Jquery部分は次のようになります
$('#navigation > li:has(ul) > a').on("click",function(ev) {
$(this).siblings('ul').toggle().end().siblings().find('ul').hide();
ev.preventDefault();
});
私は何を間違っていますか?