左のナビゲーションとして、かなりの数のリンクを含む順序付けられていないリストがあります。ほとんどのリスト項目には、関連付けられたサブメニューとして別の順序付けられていないリストがあります。ただし、いくつかのリンクにはサブメニューがありません。サブメニューを持つリンクのデフォルトのクリック動作を無効にして、サブメニューをアニメーションで開くことができるようにしたいと考えています。しかし、サブメニューのないリンクでは、リンクをクリックできるようにする必要があります。私がこれをしなければならないJavaScriptは次のとおりです。
$(function(){
if($("#leftNav ul:first > li > a").siblings().size() > 0){
$("#leftNav ul:first > li > a").click(function(e){
e.preventDefault();
});
}
問題は、兄弟リンクだけでなく、すべてのリンクのデフォルトのクリック動作が無効になることです。左側のナビゲーションの html は次のようになります
<div id="leftNav">
<ul>
<li>
<a href="#">Link 1</a>
<ul>
<li><a href="#">Submenu Link 1</a></li>
<li><a href="#">Submenu Link 2</a></li>
<li><a href="#">Submenu Link 3</a></li>
</ul>
</li>
<li><a href="#">Link 2</a></li>
</ul>
</div>
<ul>
リンク 1 では が兄弟であるため、クリック動作を削除する必要があります。リンク 2 には兄弟がないため、そのままにしておく必要があります。