私はマルチレベルの深いメニューを持っている問題を解決しようとしています。私は最初のレベルの要素(クラスを追加する場合は.ubermenu-active
)をクリックすると、そのクラスの他の第1レベルの要素を探して削除するようにしています。jQueryクリック型の最初の要素
$('.ubermenu-item-level-0 span').on('click',function() {
var target = $('.ubermenu-item-level-0');
$('.ubermenu li.ubermenu-item-level-0').removeClass('ubermenu-active');
target.parents('.ubermenu li.ubermenu-item-level-0').toggleClass('ubermenu-active');
});
HTML(モック):サブ要素のいずれかがクリックされた場合
<ul class="ubermenu">
<li class="ubermenu-item-level-0">
<a class="ubermenu-target">
<span class="ubermenu-target-title">Level 1</span>
</a>
<ul class="ubermenu-submenu">
<li class="ubermenu-item-level-1">
<a class="ubermenu-target">
<span class="ubermenu-target-title">Level 2</span>
</a>
</li>
<li class="ubermenu-item-level-1">
<a class="ubermenu-target">
<span class="ubermenu-target-title">Level 2</span>
</a>
<ul class="ubermenu-submenu">
<li class="ubermenu-item-level-2">
<a class="ubermenu-target">
<span class="ubermenu-target-title">Level 3</span>
</a>
</li>
</ul>
</li>
</ul>
<li class="ubermenu-item-level-0">
<a class="ubermenu-target">
<span class="ubermenu-target-title">Level 1</span>
</a>
</li>
</li>
</ul>
は今の親はあなたがイベントの伝播を停止することができます
私はあなたが探しているものを知っていると思いますが、実際のHTMLを見れば、DOM構造が明確であることが確認できます。 – talemyn
私はあなたにアイデアを与えるためにメニューのクリーンなバージョンを作成しようとすることができます。 Ubermenuはちょうどそれの膨らみのトーンを入れます。 –