2013-05-30 50 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

:))))非常感謝你 –

相關問題