jqueryに飛び込もうとしているだけで、これがすでに回答されている場合は許してください。検索しましたが、私がやろうとしていることに関連する例が見つかりませんでした。
いくつかのサブメニューを含む垂直メニューがあります。トップレベルのメニューをクリックするとサブメニューが開くように動作しています。問題は、サブメニュー項目の 1 つがクリックされたときにサブメニューを開いたままにしたいということです。今のように、サブメニュー項目をクリックするとメニューが折りたたまれます。
これが私のコードです:
// Add class of drop if item has sub-menu
$('ul.sub-menu').closest('li').addClass('drop');
// Left Sidebar Main Navigation
var menu_ul = $('.menu > li.drop > ul'),
menu_a = $('.menu > li.drop > a');
menu_ul.hide();
menu_a.click(function(e) {
e.preventDefault();
if(!$(this).hasClass('active')) {
menu_a.removeClass('active');
menu_ul.filter(':visible').slideUp('normal');
$(this).addClass('active').next().stop(true,true).slideDown('normal');
} else {
$(this).removeClass('active');
$(this).next().stop(true,true).slideUp('normal');
}
});
私が望むものを明確なコーダータイプの文に翻訳しようとすると、このように読まれると思います. 基本的に、サブメニューを持つアクティブなメニューの DOM を照会する必要があります。ページにサブメニュー項目の 1 つが表示されている場合は、サブメニューのドロップダウンを表示します。