2013-05-30 44 views
0

我有这样的代码:jQuery的:手风琴菜单了slideDown和效果基本show

<ul class="main"> 
    <li><a href="#">main menu1<span class="open"> </span></a> 
      <ul class="submenu"> 
       <li><a href="#">submenu1</a></li> 
       <li><a href="#">submenu2</a></li> 
       <li><a href="#">submenu3</a></li> 
       <li><a href="#">submenu4</a></li> 
       <li><a href="#">submenu5</a></li> 
      </ul> 
     </li> 
    <li><a href="#">main menu2<span class="open"> </span></a> 
      <ul class="submenu"> 
       <li><a href="#">submenu1</a></li> 
       <li><a href="#">submenu2</a></li> 
       <li><a href="#">submenu3</a></li> 
       <li><a href="#">submenu4</a></li> 
       <li><a href="#">submenu5</a></li> 
      </ul> 
     </li> 
</ul> 

与这个jQuery手风琴菜单

 var submenu = $('.submenu').hide(); 

    $('.open').click(function() { 
     $this = $(this); 
     $target = $this.parent().next(); 

     if(!$this.hasClass('close')){ 
     $('.open').removeClass('close'); 
     submenu.slideUp(); 
     $this.addClass('close'); 
     $target.slideDown(); 
     } 
    }); 

它是这样工作的,点击按钮在右边,它的submenu正在滑落,其他滑落。

我希望当我点击它本身(我的意思是右边的按钮,哪个子菜单当前打开),其submenu也滑动了。

我该怎么办?

Here is the code in jsFiddle

回答

1

很简单,使用else条件和简单的使用$target.slideUp();

if(!$this.hasClass('close')){ 
    $('.open').removeClass('close'); 
    submenu.slideUp(); 
    $this.addClass('close'); 
    $target.slideDown(); 
}else{ 
    $target.slideUp(); 
    $this.removeClass('close'); 
} 

Here's your fiddle

+0

:))))非常感谢你 –

相关问题