jQuery・javascript

jQueryでアコーディオンパネル

jQueryでアコーディオンパネルを実装してみます。
サンプルも設置してますので、動作の確認が出来ます。

サンプル

タイトル1
本分本分本分本分本分本分本分本分本分本分
タイトル2
本分本分本分本分本分本分本分本分本分本分
タイトル3
本分本分本分本分本分本分本分本分本分本分

↑閉じているタイトルをクリックすると本文が表示されます。

設置コード

javascript
まずは、htmlソースのhead内でjqueryを読み込みます。
[php]<script type=’text/javascript’ src=’jquery-1.6.1.min.js’></script>
[/php]

今回の動作を設定している以下のソースをhtmlソース内に適当に配置します。
[php]
<script type="text/javascript">
jQuery(function() {
jQuery("dd:not(:first)").css("display","none");
jQuery("dl dt").click(function(){
if(jQuery("+dd",this).css("display")=="none"){
jQuery(this).siblings("dd").slideUp("slow");
jQuery("+dd",this).slideDown("slow");
}
});
});
</script>[/php]

htmlソース

以下のようなソースを記述します。[php]
<dl>
<dt>テスト</dt>
<dd>aaaaaaaaaaaaaaaaaaa</dd>
<dt>テスト</dt>
<dd>aaaaaaaaaaaaaaaaaaa</dd>
<dt>テスト</dt>
<dd>aaaaaaaaaaaaaaaaaaa</dd>
</dl>
[/php]

css

[php]<style type="text/css">
* {
margin:0px;
padding:0px;
}
dl{
width:400px;
margin:50px auto;
}

dl dt {
background:#eeeeee;
border-bottom:1px solid #dddddd;
cursor:pointer;
}
dl dd {
border:1px solid #cccccc;
border-top:none;
height:100px;
}
</style>[/php]

今回のサンプルでは、タイトル1の本文が最初に開いた状態ですが、javascript内の
(“dd:not(:first)”)となっているところを
(“dd”)とすると、最初は全てが閉じられており、クリックされて初めて、本文が読めるといった感じになります。