あなたが何を求めているのかを理解するのにしばらく時間がかかりました.あなたのcssはすべてを右に押し上げていますが、これはあなたが探しているものだと思いますか? http://jsfiddle.net/GbMRx/3/
$(function () {
$('.button').on('click', function () {
var el = $('#cnt' + this.id.replace('btn', ''));
$('#content-new div').not(el).animate({
height: "toggle",
opacity: "toggle"
}, 100).hide();
el.toggle();
el.children("div").toggle();
});
});
私も子供たちを切り替えました。
別のオプション(おそらくより良いオプション)は、最初のレベルの子のみを非表示/トグルすることです... http://jsfiddle.net/GbMRx/4/
JS:
$('#content-new > div').not(el).animate({...
CSS: (これを削除display:none
し#content-new div
て追加)
#content-new>div {
display:none;
}
...そして、私は考え始めました。おそらく、最初のレベルの子 div のみに影響を与えるつもりでしたか? #content-new div
それが本当なら、これはおそらくあなたが望むものです...すべてを...にすることを除いて上記と同じです#content-new>div
... http://jsfiddle.net/GbMRx/5/