そういうのが欲しいという人がいたので。
@Stocker_jp @weboxes ありがとうございます。dtクリックでdd展開するアニメーション付きのjQueryのコード欲しいですw
さっくり書いてみました。
デモ
例によってjsdo.itです。
dtクリックでdd展開するアニメーション付きのjQueryのコード – jsdo.it – share JavaScript, HTML5 and CSS
解説
まず
dt
要素をクリックした際に処理
を行うようにします。今回は親のdl
要素の方にクラス名を付ける事にしました。セレクタについては、今回は解説しません。
// クリックしたら処理実行 $('.faq dt').click(function(event) { // ここに処理を書く });
さて次は
展開するdd
要素の検索
です。
HTMLは「dt
とdd
をセットで記述する」というルールを事前に設けておきます。(まあFAQの構造上そうなるとは思いますが。)
クリックされたdt
要素は、この場合は$(this)
で得る事ができます。(これの解説は省きます。) dt
要素がわかったら、「その次」の要素を得る事ができれば良いですね。それにはjQueryのnext()
メソッドを使用します。
$('.faq dt').click(function(event) { // 直後のdd要素取得 $(this).next(); });
対象の要素がわかったので、いよいよこれを
スライドして展開
します。これもjQueryで準備されている、slideToggle()
メソッドで簡単に実現でいます。
$('.faq dt').click(function(event) { // 直後のdd要素を開閉 $(this).next().slideToggle(); });
これで開閉するようになりました。
最後に、
dd要素が最初は見えないように
します。これはJavaScriptではなくCSSですね。
.faq dd { display: none; }
これで出来上がりです。
あとはお好きなようにデザインを組んでみてくださいね。先ほどのコードをforkして、jsdo.itへ投稿してみると良いでしょう。