我想僅顯示點擊時點擊li和子按鈕的子菜單。目前,點擊和顯示和隱藏功能正在工作,但下面的代碼在點擊時顯示了兩個子菜單,我只需要li按鈕的子子菜單顯示點擊。所有子菜單在點擊時顯示
<ul id="menu-main-menu" class="nav-menu">
<li class="menu-item"><a href="#">Menu link</a>
<button aria-expanded="false" class="dropdown-toggle"></button>
<ul class="sub-menu">
<li class="menu-item"><a href="link1.htm">link1</a></li>
<li class="menu-item"><a href="link2.htm">link1</a></li>
</ul>
</li>
<li class="menu-item"><a href="#">Menu link 2</a>
<button aria-expanded="false" class="dropdown-toggle"></button>
<ul class="sub-menu">
<li class="menu-item"><a href="link1.htm">link1</a></li>
<li class="menu-item"><a href="link2.htm">link1</a></li>
</ul>
</li>
</ul>
<div class="site-content"></div>
的jQuery:
jQuery(document).ready(function ($) {
$("#menu-main-menu").on('click', 'button', function (event) {
$('ul.sub-menu').appendTo('.site-content');
if($('ul.sub-menu:visible').length)
$('ul.sub-menu').hide();
else
$('ul.sub-menu').show();
});
});
CSS:
#menu-main-menu ul.sub-menu {
display: none;
}
ul.sub-menu {
display: none;
position: absolute;
z-index: 200000;
top: 0;
left: 1.5%;
right: 1.5%;
margin: 0 auto 0 auto;
padding: 20px;
list-style: none;
}
ul.sub-menu li {
width: 24%;
display: inline-block;
padding: 8px 9px;
text-align: center;
}
ul.sub-menu .toggled-on {
display: block;
}
.site-content {
display: block;
position: relative;
}
解決方案:所以這裏的解決方案是不使用appendTo(),我不得不把元素放回原處它來自何時切換。解決的辦法是隻使用切換正確位置菜單項:對(「點擊」切換它的.SUB菜單和$()絕對CSS
jQuery('#menu-main-menu').on('click', 'button', function(event) {
if($(this).closest("li.menu-item").children("ul.sub-menu").length > 0)
{
$(this).closest("li.menu-item").children("ul.sub-menu").slideToggle('fast');
return false;
}
});
做到這一點你'你的'if'和'else'語句丟失大括號'{}'。 –
@ChrisYongchu純粹是文體。 –
啊,不知道。謝謝! –