私は複数のセクションを持っている、3は正確には、基本的なレイアウトで様々な高さの:私は最初にそれらを表示する方法を探していますjQueryの:一つの機能を持つ複数のセクションに切り替え高さ
<section>
<h2>My heading</h2>
</section>
ユーザーが<h2>
をクリックすると、そのセクションが68pxの高さに減少します。主な問題は、各セクションの高さが異なることです(最初のセクションは478px、2番目のセクションは2118px、3番目のセクションは247px)が、セクションごとに別々の関数を記述したくないので、 1。私が最初のセクションを閉じ、それを再度開くのではなく、2番目のセクションの<h2>
をクリックするまでうまくいきました。それが問題の始まりです。だから私の質問は、これを行うためにとにかくそこにいるか、私は各セクションのための別の機能が必要ですか?
sectionSize = "normal";
$(document).ready(function(){
//var sectionSize = "normal";
$("h2").click(function(){
var parentSection = $(this).parents("section");
if (sectionSize == "normal") {
sectionHeight = parentSection.height();
parentSection.animate({height:"68px"},"fast"),
sectionSize = "collapsed";
} else {
parentSection.animate({height:sectionHeight},"fast"),
sectionSize = "normal";
}
});
});
私はここにさらに肉付けHTMLとCSSでhttp://jsfiddle.net/Skooljester/94yqX/をより完全なバージョンを持っています。
これは完璧な答えであり、私が探していたものですが、私が遭遇する問題は、変数 'sectionSize'の変更です。あるセクションをクリックすると、折りたたまれ、 'sectionSize'が' collapsed'とマークされますが、別のセクションをクリックすると折りたたまれますが、通常のサイズには戻りません。 –
同様の方法でそれを解決できます。データ関数を使用して、要素自体にsectionSizeを追加し、グローバル変数を持たずにそれをチェックします。 –
これは完璧です!どうもありがとうございます! –