2011-10-13 87 views

回答

2

你可以縮短你的代碼,只是這樣的:

$(".fade").click(function() { 
    $(this).next().slideToggle("slow"); 
}); 

這將click事件處理程序綁定到所有元素與.fade類,而不是單獨綁定通過id您目前正在做的。使用slideToggle處理元素是否已經可見或不適合你,所以你不需要費心把它保留在變量中。

您嘗試的問題是您用來做這件事的hidden變量。當您展開一個元素時,hidden設置爲false。當您再點擊另一個時,hidden爲false,因此slideUp部件運行,並且hidden設置爲true,因此當您再次單擊時,運行正確的分支(else)。

這裏是updated working fiddle

0

試試看。

http://jsfiddle.net/JHgvK/2/

我不知道,如果你想,當被點擊一個對話框的其他箱子倒塌。

我沒有使用的slideToggle,如果你想要做別的事情每個狀態

+1

非常感謝,我發現你的腳本不錯,但逐漸的不透明度動畫錯過。 –