放置していたサイトをリニューアルしようとjQueryを勉強しています(プロバイダのサーバーで運用してたんですが、容量も少ないし、CGI動かすとなると別ドメインになるしとあまりよくないので、ここのドメインのサブドメインにして移転しようと思っています)。
というわけで今回はjQueryについて。用語や名前を意味するdtタグをクリックすると、その下のddタグを開閉させる方法についてです。まず、最初にページを開いた時にはddタグは閉じているものとします。
$(function() { $('dd').css("display", "none"); $('dt').click(function() { $('+dd', this).slideToggle('slow'); }); });
<dl> <dt style="cursor:pointer">春</dt> <dd>冬の次の季節</dd> <dt style="cursor:pointer">夏</dt> <dd>春の次の季節</dd> <dt style="cursor:pointer">秋</dt> <dd>夏の次の季節</dd> <dt style="cursor:pointer">冬</dt> <dd>秋の次の季節</dd> </dl>
実行例
- 春
- 冬の次の季節
- 夏
- 春の次の季節
- 秋
- 夏の次の季節
- 冬
- 秋の次の季節
終わり。
としたいところですが、これだけでは何なのでもう少し改良してみます。
URIにアンカー(ハッシュ)があると、ページを開いた時にアンカーに対応するdtタグの下のddタグを開くというものです。
$(function() { $('dd').css("display", "none"); $('dt').click(function() { $('+dd', this).slideToggle('slow'); }); $(location.hash).click(); });
<dl> <dt id="migite" style="cursor:pointer">右手</dt> <dd>お箸を持つ方の手</dd> <dt id="hidarite" style="cursor:pointer">左手</dt> <dd>お箸を持たない方の手</dd> </dl>
実行例
- 右手
- お箸を持つ方の手
- 左手
- お箸を持たない方の手
右手
多分これでうまくいくはず。
なぜかここでやったら、dtタグじゃなくて、ddタグのほうにページが遷移しました。なんでだろう・・・。
コメント