2013-10-22 55 views
1

我有一些菜單在我的網站上有相同的元素,我想使用了slideDown在jQuery來了slideDown只有點擊菜單了slideDown只有點擊的元素的jQuery

但現在,當我點擊一個菜單中的所有菜單得到了slideDown

HTML

 <div id="sidebar-right" > 



       <div class="sidebar-menu"> 
         <span class="sidebar-post">Last Posts</span> 
           <span class="sidebar-post-slide">+</span> 

           <div style="margin-top:-35px"></div> 
           <div class="sidebar-text"> 
Some content 
          </div> 
       </div> 
       <!-- S2 --> 
           <div class="sidebar-menu"> 
         <span class="sidebar-post">Last Comments</span> 
           <span class="sidebar-post-slide">+</span> 

         <div class="sidebar-text">   
Some content 
         </div> 
       </div> 
       <!-- End S2 --> 

     </div> 

和jQuery側

$(function() { 
$('.sidebar-post-slide').click(function() { 
if ($('.sidebar-text').is(":hidden")) { 
$('.sidebar-text').slideDown(800); 
} else { 
$('.sidebar-text').hide(800); 
} 
}); 
}); 

回答

1

你需要下跌edown同級sidebar-text元件,並非所有sidebar-text元件

$(function() { 
    $('.sidebar-post-slide').click(function() { 
     //find the sibling sidebar-text element and complete any queued animations 
     var $stext = $(this).siblings('.sidebar-text').stop(true, true); 
     if ($stext.is(":hidden")) { 
      $stext.slideDown(800); 
     } else { 
      $stext.hide(800); 
     } 
    }); 
}); 

演示:Fiddle

+0

謝謝,它工作正常,但我有一個問題,我可以將' +'更改爲' -' 當它隱藏? – AliM

+0

@AliM看到http://jsfiddle.net/arunpjohny/fBbum/3/ –

+0

謝謝,但它似乎它的作品後點擊兩次(它不工作正常,在第一次點擊,它不會改變) 誰能解決這個問題? – AliM

0

另一種選擇是使用的方法closest()。但在你的情況下,阿倫的親屬更好。