ナビゲーションのプルダウンなどでよくある2階層の形で、親と子のclickイベントが併発しないようにする場合、stopPropagation()を使用します。
【HTML】 <ul class="wrapper"> <li class="list"> <ul class="inner"> <li>インナー</li> </ul> </li> <li></li> <li></li> </ul>
【jQuery】 $('.wrapper li').on('click', function() { alert('プルダウンを行う'); }); $('.inner').on('click', function() { e.stopPropagation(); alert('何もしない'); });
これだと効かないので、親要素のセレクターを下記のようにします。
【jQuery】 $('.list').on('click', function() { alert('プルダウンを行う'); }); $('.inner').on('click', function() { e.stopPropagation(); alert('何もしない'); });