yuheijotaki.com

2014/02/14 : 
jQueryトグル

jQueryの簡単なトグル

 

以下のようなhtml

<div>
	<h1>ここに見出しが入ります。</h1>
	<div class="contents">
		<p>ここにテキストが入ります。</p>
		<p>ここにテキストが入ります。</p>
		<p>ここにテキストが入ります。</p>
	</div>
</div>

<div>
	<h1>ここに見出しが入ります。</h1>
	<div class="contents">
		<p>ここにテキストが入ります。</p>
		<p>ここにテキストが入ります。</p>
		<p>ここにテキストが入ります。</p>
	</div>
</div>

<div>
	<h1>ここに見出しが入ります。</h1>
	<div class="contents">
		<p>ここにテキストが入ります。</p>
		<p>ここにテキストが入ります。</p>
		<p>ここにテキストが入ります。</p>
	</div>
</div>

 

.contentsを非表示にしておく。

.contents {
	display: none;
}

 

h1をクリックしたら同グループの.contentsを表示する。
開く/閉じるの判定はh1にactiveクラスがついているかどうか

$('h1').click(function () {
	if ( $(this).hasClass('active') ) {
		$(this).parent().find('.contents').css({'display':'none'});
		$(this).removeClass('active');
	} else {
		$(this).parent().find('.contents').css({'display':'block'});
		$(this).addClass('active');
	}
});

display:block/noneではなく.slideUp()、.slideDown()などでも
またh1にactiveクラスがつくので矢印画像の変更をその都度など