我有这个HTML代码的简单侧边菜单:
<div id="menu">
<div>
Menu Title
</div>
<ul class="menu">
<li>
<span>
first item
</span>
<ul>
<li>
sub item
</li>
<li>
sub item
</li>
<li>
sub item
</li>
</ul>
</li>
<li>
<span>
second item
</span>
<ul>
<li>sub menu</li>
<li>sub menu</li>
</ul>
</li>
<li>
<span>
third item
</span>
<ul>
<li>
sub menu
</li>
<li>
sub menu
</li>
</ul>
</li>
</ul>
</div>
和css是:
#menu{
text-align:center;
font-size:13px;
font-family:tahoma;
color:#0000AA;
padding:2px 0;}
#menu div{
color:#0000AA;}
#menu ul{
text-align:right;
background-color: #FFFFFF;
list-style-type: none;
margin: 0px;
padding: 0px;}
#menu ul li{
display:block;
margin: 3px 2px;
cursor:hand;
cursor:pointer;}
#menu ul li span{
width:100%;
display:block;
background-color:#DDDDFF;}
#menu ul li span:hover{
background-color:#9999EE;}
#menu ul li ul{
display:none;}
#menu ul li ul li{
background-color:#EEEEEE;
margin:2px;
display: block;}
#menu ul li ul li:hover{
background-color:#FFFFFF;}
.submenu{
background-color: #CCCCFF;}
和jquery代码是:
$(window).load(function(){
$(".submenu").children(this).slideUp("slow");
});
$(document).ready(function(){
$('ul.menu li span').click(function(){
$("ul.menu li").find('ul').slideUp('fast');
$(this).parent(this).find('ul').slideDown('fast');
});
});
我的complate菜单位于http://jsfiddle.net/parseha/NkuG5/3/ 这个问题是:当点击第一个项目时,子菜单向上滑动然后向下滑动,我想不要这样运行 请原谅我这篇文章以及我在内容上的错误。 感谢。
答案 0 :(得分:2)
使用“siblings”选择器,slideToggle()将根据DOM的当前状态显示或隐藏DOM。
$(window).load(function(){
$(".submenu").children(this).slideUp("slow");
});
$(document).ready(function(){
$('ul.menu li span').click(function(){
$(this).siblings('ul').slideToggle('fast');
});
});
答案 1 :(得分:1)
诀窍是跟踪哪个菜单已展开,并根据其状态(展开或折叠)确定要采取的操作(向上滑动或向下滑动)。
您可以通过在展开时向菜单项添加类来实现此目的,并在折叠时删除该类。该类的存在将指示菜单是展开还是折叠。
Jquery代码:
$(window).load(function() {
$(".submenu").children(this).slideUp("slow");
});
$(document).ready(function() {
$('ul.menu li span').click(function() {
if ($(this).hasClass('current'))
{
$(this).removeClass('current');
$("ul.menu li").find('ul').slideUp('fast');
}
else
{
$(this).addClass('current');
$(this).parent(this).find('ul').slideDown('fast');
}
});
});
<强> Demo 强>