2013-04-06 65 views
0

我試圖顯示divli被點擊並隱藏它時,其他li被點擊。問題是,當我點擊最後一個li時出現了一個奇怪的效果。奇怪的影響我jquery我淡出

這裏是我的代碼的外觀:http://jsfiddle.net/zxGqV/4/

我在jQuery的是新的,所以我敢肯定,我的一些代碼邏輯的無厘頭。

$('.btn').click(function(c){ 
     c.preventDefault(); 
     var a = $(this).attr("id").replace('title_', ''); 
     $(this).closest("#elements").find('.btn').removeClass("current"); 
     $(this).closest('li').addClass("current"); 
     $("#elements").find('.details').fadeOut("slow", function(){ 
      $('.btn-group').find('#details_' + a).fadeIn("fast"); 
     }); 
}); 


<div class="row"> 
<div class="span8 center"> 
    <ul id="elements" class="ui-sortable"> 

    <li id="element_10" class=""> 
    <div class="btn-group"> 
     <button id="title_10" type="button" class="btn"> 
     lorem 10</button> 
     <div style="display: none;" id="details_10" class="details"> 
     lorem ipsum 10 
     </div>    
    </div> 
    </li> 

    <li id="element_11" class=""> 
     <div class="btn-group"> 
     <button id="title_11" type="button" class="btn"> 
      foo 11</button> 
     <div style="display: none;" id="details_11" class="details"> 
      foo bar 11 
     </div>    
     </div> 
    </li> 

...等

+3

要鏈接到的小提琴是空的。如果你可以在這裏發佈你的代碼的相關部分,這將是非常好的,所以人們可以回答你的問題,但不想點擊通過可能會看看它。 – m90 2013-04-06 19:20:26

+1

theres沒有在你的jsfiddle,只是一個CSS導入 – 2013-04-06 19:20:36

+1

你的小提琴是空的。 – 2013-04-06 19:21:52

回答

1

這個作品 - 可能要調整的時機。

在這裏我使用當前類來確保我一次只處理一個項目。

http://jsfiddle.net/cewFL/

$('.btn').click(function(c){ 
     c.preventDefault(); 
     $(this).attr("id").replace('title_', ''); 
     $(".current .details").fadeOut("fast"); 
     $(".current").removeClass("current"); 
     $(this).closest('li').addClass("current"); 
     $(".current .details").fadeIn("fast"); 

}); 
+0

我喜歡你的方法。它更清潔。太好了! – 2013-04-07 07:36:55