2013-10-30 68 views
2

有人可以幫我用下面的代碼嗎?不能正確的。如果其他打開,切換框關閉

我希望它關閉打開切換時點擊新/其他人。

我有這樣的時刻:

http://jsfiddle.net/78tDj/1/

jQuery(document).ready(function($) { 

    // Find the toggles and hide their content 
    $('.toggle').each(function(){ 
     $(this).find('.toggle-content').hide(); 
    }); 

    // When a toggle is clicked (activated) show their content 
    $('.toggle a.toggle-trigger').click(function(){ 
     var el = $(this), parent = el.closest('.toggle'); 

     if(el.hasClass('active')) 
     { 
      parent.find('.toggle-content').slideToggle(); 
      el.removeClass('active'); 
     } 
     else 
     { 
      parent.find('.toggle-content').slideToggle(); 
      el.addClass('active'); 
     } 
     return false; 
    }); 

}); //End 
+0

Thnx他們的工作! – user2938617

+0

如何關閉現在打開的切換? – user2938617

回答

0

你需要把他們藏在你的click處理程序:

$('.toggle a.toggle-trigger').click(function(){ 
    var el = $(this), parent = el.closest('.toggle'); 

    $('.toggle .toggle-content').slideUp(); // <- added this!!!! 
    //... 

jsFiddle

0

無需調用每個,這是多餘的。此外,只需:-)

$('.toggle a.toggle-trigger').click(function() {     
    var el  = $(this), 
     parent = el.closest('.toggle'); 

    $('.toggle .toggle-content').slideUp(); 

    if (!el.hasClass('active')) { 
     $('.toggle a.toggle-trigger').removeClass('active'); 

     el.addClass('active'); 
     parent.find('.toggle-content').slideDown(); 
    } 
    else { 
     el.removeClass('active'); 
    } 
}); 

http://jsfiddle.net/78tDj/10/

+0

thnx,但現在我不能關閉打開的切換鍵 – user2938617

+0

更新的小提琴可用於所有切換,也是固定的「主動」班。如果它是你需要的,請檢查答案,tnx。這可能不是現在最優化的代碼,但我很困... – Robert

0

打開一個新..done這是你想要達到的目標之前隱藏所有切換?

jQuery(document).ready(function($) { 

    // Find the toggles and hide their content 
    $('.toggle-content').hide(); 

    // When a toggle is clicked (activated) show their content 
    $('.toggle a.toggle-trigger').click(function(){ 
     var el = $(this), parent = el.closest('.toggle'); 


     $('.toggle-content').hide(); 

     if(el.hasClass('active')) 
     { 
      parent.find('.toggle-content').slideToggle(); 
      el.removeClass('active'); 
     } 
     else 
     { 
      parent.find('.toggle-content').slideToggle(); 
      el.addClass('active'); 
     } 
     return false; 
    }); 

}); //End