以下のコードを使用してアコーディオン メニューを切り替えていますが、子メニューの項目をクリックするたびに、実際のリンクに移動せずにメニューが上にスライドします。
上のjsfiddleでMISCをクリックすると、メニューが開きます。ただし、子リンクをクリックすると、すぐに閉じます。「return false;」の場合は正常に機能します。削除されます(ブラウザがページの上部にジャンプするのを防ぐためにあります)が、それにより、サブメニューがスライドアップするだけです..?
jQuery(document).ready(function ($) {
jQuery('.menu ul').slideUp(0);
jQuery('.menu li.sub').click(function () {
var target = jQuery(this).children('a');
if(target.hasClass('menu-expanded')){
target.removeClass('menu-expanded');
}else{
jQuery('.menu-item > a').removeClass('menu-expanded');
target.addClass('menu-expanded');
}
jQuery(this).find('ul:first')
.slideToggle(350)
.end()
.siblings('li')
.find('ul')
.slideUp(350);
return false;
});
});