2011-10-13 120 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

非常感谢,我发现你的脚本不错,但逐渐的不透明度动画错过。 –