ここまでのことを理解できると、jQueryでかなりいろいろなことができるようになると思いますが、初めは「こうなったらああなってほしい」とやりたいことはわかっていても、「でもどうやって?」となると思います。
なので、初めのうちはネットに落ちている様々なサンプルを拝借してきて、何をどうしているのか、実際にやってみつつ覚えていくとよいのではないかなーと思います。
では、実際にネットに落ちているサンプルを参考に、見てみましょう。
<div id="t1" class="tab_wrap"> <ul> <li class="c">タブ1</li> <li>タブ2</li> <li>タブ3</li> <li>タブ4</li> <li>タブ5</li> </ul> <div class="content_wrap">内容1</div> <div class="content_wrap d_none">内容2</div> <div class="content_wrap d_none">内容3</div> <div class="content_wrap d_none">内容4</div> <div class="content_wrap d_none">内容5</div> </div>
※黒い部分をダブルクリックするとソースを選択できるので、コピーして使ってください。
上のサンプルでは、このhtmlソースを二つ貼り付けています(二つ目のid名は変えてあります・・・1ページにタブグループが1つだけでよければ、idは不要です)。
1ページに複数タブグループがあることになります。
class[tab_wrap]内のliタグをタブにし、それぞれのコンテンツはclass[content_wrap]内に記述します。
class[content_wrap]は最初に表示しておくもの以外はclass[d_none](display:noneを設定済)を指定して、非表示にしておきます。
ちなみにclass[c]は現在のタブを表すデザインを設定してあります。
$(function(){
$('.tab_wrap li').click(function() {
var num = $('.tab_wrap li').index(this);
$('.content_wrap').addClass('d_none');
$('.content_wrap').eq(num).removeClass('d_none');
$('.tab_wrap li').removeClass('c');
$(this).addClass('c');
});
})
※黒い部分をダブルクリックするとソースを選択できるので、コピーして使ってください。
jqueryコードはfine×3というサイトの「タブの切替 | よく使うjQuery」にあるサンプルをコピペして、セレクターを変更しています。
どんな風に組まれているか、見てみましょう。
こんな風に、セレクター・・・つまりどの要素(タグ・class・id)に何をしてほしいと記述されているのかなーと解析していくと、何をやっているのかわかると思います。
ところで、実はこれだけでは1ページに複数タブグループがあるとき、うまく動作しません。
一つのタブグループのタブをクリックすると、ほかのタブグループも反応してしまい、表示もおかしくなってしまいます。
これを回避するためのもっとも単純な方法は、class[tab_wrap]にid名やそのページ内で一意のclass名を付けて、その名前の分だけこのjqueryコードを用意すればよいです。
しかし、セレクターが違うだけの同じコードをたくさん書くのは面倒ですし、あまりスマートな方法とは言えません。
このタブ切り替えのjqueryコードをタブの数の分だけ書かなくても対応できるように、カスタマイズしてみましょう。
方法はいろいろ考えられると思いますが、今回はclass[tab_wrap]を設定しているdivタグにそれぞれid[t1][t2]・・・といった適当に重複しないようなid名を追加し、それでどのタブグループのliタグであるかを判定しようと思います。
$(function(){
$('.tab_wrap li').click(function() {
var p = '#' + $(this).parents('div').attr('id') + ' ';
var num = $(p + 'li').index(this);
$(p + '.content_wrap').addClass('d_none');
$(p + '.content_wrap').eq(num).removeClass('d_none');
$(p + 'li').removeClass('c');
$(this).addClass('c');
});
})
※黒い部分をダブルクリックするとソースを選択できるので、コピーして使ってください。
このように、jqueryについてある程度理解していれば、既存のサンプルコードをカスタマイズして、使いやすくすることも可能です。