2011-07-28 80 views
3

http://jsfiddle.net/yrM3H/2/jQuery的展會之一股利和隱藏其他

我有以下代碼:

jQuery(document).ready(function() { 
    jQuery(".toggle").next(".hidden").hide(); 
    jQuery(".toggle").click(function() 
    { 
    $('.active').toggleClass('active').next('.hidden').slideToggle(300); 
    $(this).toggleClass('active').next().slideToggle("fast"); 

}); 
}); 

我有多個<div>的,我的想法是,當我打開一個<div>它觸發另一個<div> 。然後,當我點擊另一個<div>時,它隱藏了開放的<div>。因此,一次只能打開一個<div>

我唯一的問題是,通過此代碼,當我嘗試關閉已打開的<div>時,它將關閉並再次打開。因此,一個<div>將始終打開。

任何幫助將不勝感激,謝謝。

我在下面添加了HTML和CSS。一切正常,但我無法得到它,因此所有人都關閉了。

我有5個這些堆疊在一個包裝彼此。

*編輯的清晰度*

// HTML 
<div class="toggle"></div> 
<div class="hidden"></div> 

// CSS 
.toggle {width:398px; height:48px; cursor: pointer;} 
.hidden {width:300px; height:75px; background-color:#333333; margin-left:50px; text-indent:25px;} 
+0

請在OP中添加一些相關的HTML和CSS代碼。另外,創建一個[JSFiddle](http://www.jsfiddle.net)會很棒。 – Sparky

+0

內容已更新,並添加了jfiddle。 – Ando

回答

9

這將解決這個問題: http://jsfiddle.net/yrM3H/3/

jQuery(".toggle").click(function() 
    { 
    $('.active').not(this).toggleClass('active').next('.hidden').slideToggle(300); 
    $(this).toggleClass('active').next().slideToggle("fast"); 
    }); 

你必須排除點擊的元素形成使用.not()你 「主動」 部分,因爲點擊的元素是「.active」。

+0

謝謝一堆,非常感謝。 – Ando