私はこのhtmlメニューを持っています。一部のメニュー項目にはサブメニューがあります。
<ul class="menu uppercase">
<li class="mitem">Level 1 Menu Item
<ul class="submenu">
<li class="smitem">Level 2 Menu Item</li>
<li class="smitem">Level 2 Menu Item</li>
<li class="smitem">Level 2 Menu Item</li>
<li class="smitem">Level 2 Menu Item</li>
<li class="smitem">Level 2 Menu Item</li>
</ul>
</li>
<li class="mitem">Level 1 Menu Item
<ul class="submenu">
<li class="smitem">Name of Collection</li>
<li class="smitem">Level 2 Menu Item</li>
<li class="smitem">Level 2 Menu Item</li>
<li class="smitem">Level 2 Menu Item</li>
<li class="smitem">Level 2 Menu Item</li>
</ul>
</li>
<li class="mitem">Level 1 Menu Item</li>
<li class="mitem">Level 1 Menu Item</li>
<li class="mitem">Level 1 Menu Item</li>
Jqueryは次のようになります。
$("li.mitem").click(function(){//when menu item is clicked
$("ul.submenu").slideUp();//hide all sub menus
$("li.mitem").css('margin-bottom','0px').css('border-left','none');//reset margin bottom and left border
$(this).css('border-left','1px solid #E0E0E0').css('padding-left','9px');//add border and padding to this menu item
$(this).children("ul.submenu").slideDown();//show menu items child sub menu
$(this).children().children("li.smitem:first").css('padding-top','18px');//add padding to first sub menu item
if($(this).children().length>0){
$(this).css('margin-bottom','18px');
}
});
したがって、基本的に、レベル1のメニュー項目をクリックすると、そのメニュー項目のサブメニューが下にスライドして表示されます。次のレベル1メニュー項目をクリックすると、現在のサブメニューを上にスライドし、次のサブメニューを下にスライドします。
ただし、問題は...レベル2のメニュー項目をクリックすると、サブメニューが上にスライドしてから、再び下にスライドします。
サブメニューがレベル1メニューのli内にあるため、これが発生していると思います。
どうすればこれを止めることができますか?その予期しない動作。