このページの本文へ

前へ 1 2 3 次へ

  • twitterでつぶやく
  • はてなブックマークに登録
  • del.icio.usに登録
  • livedoorクリップに登録
  • Buzzurlに登録
  • StumbleUponに登録
  • Google Bookmarksに登録
  • Facebookでシェア
  • Yahoo!ブックマークに登録
  • お気に入りに登録
  • 本文印刷

Web制作の現場で使えるjQuery UIデザイン入門 ― 第15回

jQueryでタブパネルを作るチュートリアル

2009年10月19日 11時00分更新

文● 西畑一馬/to-R


【クライアントのわがままに応える! 】

クライアントが簡単に更新できるタブパネルを作りたい!

 受託制作のWebサイトでは、納品後にクライアントが自分で更新できる仕組みを求められるケースがよくあります。最近では、Movable TypeやWordPressをはじめとするCMS(Content Management System)を利用することで、比較的簡単に“更新できるサイト”を構築できるようになりましたが、『新着情報』や『今日のセール品』などのテキストだけを手軽に更新したい、といったごく限られた用途のためだけにCMSを導入するのは大げさです。とはいえ、クライアントにHTMLを直接編集してもらうのは少し敷居が高いですし、関係のないHTMLまでグチャグチャに壊されてしまう恐れもあります。

 そんなニーズにぴったりなのが、Ajaxを利用した簡易更新システムです。Webページの中に表示する内容を、HTML中に記述するのではなく、別に用意したテキストファイルから読み込むシンプルな仕組みです。クライアントはテキストファイルだけを編集してサーバーにアップすればいいので手軽ですし、HTMLを壊されてしまう心配もありません。ここでは、先ほど作ったタブパネルを改造し、テキストファイルから読み込んだ内容をパネルに表示するようにしましょう。

サンプル03
サンプル01をAjaxに対応させた改造版。タブをクリックすると、それぞれのタブ用のテキストファイルを読み込んでパネル内に表示する

 HTMLは以下のように変更します。a要素のhref属性をテキストファイル名に、パネル部分のマークアップをul/li要素からp要素に変えています。

サンプル03(HTML部分)


<div id="container">
    <ul class="tab">
        <li><a href="JavaScript.txt" class="selected">JavaScript</a></li>
        <li><a href="CSS.txt">CSS</a></li>
        <li><a href="HTML.txt">HTML</a></li>
        <li><a href="jQuery.txt">jQuery</a></li>
        <li><a href="XHTML.txt">XHTML</a></li>
    </ul>
    <p class="panel"></p>
</div>


  HTMLに合わせてパネル部分のCSSも変更します。

サンプル03(CSS部分)


p.panel{
    clear:both;
    border:1px solid #9FB7D4;
    border-top:none;
    padding:10px;
    text-indent:1em;
    color:#333;
}


 スクリプトは以下のようになります。

サンプル03(スクリプト部分)


$(function(){
    $("p.panel").load($("ul.tab li a.selected").attr("href"))
    $("ul.tab li a").click(function(){
        $("ul.tab li a").removeClass("selected")
        $(this).addClass("selected")
        $("p.panel").load($(this).attr("href"))
        return false
    })
})


 最初に、class属性が「selected」のa要素のhref属性をattr()で読み出し、load()を使ってパネル(p.panel)内に読み込んでいます(関連記事)。


$("p.panel").load($("ul.tab li a.selected").attr("href"))


 同様に、clickイベントが発生すると、クリックされたタブのa要素のhref属性に書かれているファイルをload()で読み込み、パネル内に表示します。


$("p.panel").load($(this).attr("href"))


 以上で、クライアントが簡単に更新できるタブパネルが完成しました。


著者:西畑一馬(にしはた かずま)

著者写真

to-R代表、Webクリエイター。PHPによるシステム開発や、CMSを利用したWebサイト制作、SEO対策などのマーケティング、コンサルティング、Webクリエイター向けの講座などを業務で行なっている。また、ブログto-RではJavaScriptやSEO対策、CSS、Movable TypeなどのWeb制作にかかわるさまざまな情報を発信している。
主な著書に「現場のプロから学ぶXHTML+CSS」(共著、毎日コミュニケーションズ刊)がある。

前へ 1 2 3 次へ

カテゴリートップへ

この連載の記事

ASCII.jp会員サービス 週刊Web Professional登録

Webディレクター江口明日香が行く

みんなが買ってる最新アイテムはコレだ!

VOCALOID3 スターターIA ARIA ON THE PLANETES

VOCALOID3 スターターIA ARIA ON THE PLANETES

ヤマハ

17,745円〜

24人が購入

Google上位表示 64の法則 (WEB PROFESSIONAL)

Google上位表示 64の法則 (WEB PROFESSIONAL)

アスキー・メディアワークス

2,499円〜

72人が購入

標準HTML5タグリファレンス (WEB PROFESSIONAL)

標準HTML5タグリファレンス (WEB PROFESSIONAL)

アスキー・メディアワークス

2,205円〜

59人が購入

Speck MacBook Air 13型 See Thru - Clear SPK-MBA13-SEE-CLR

Speck MacBook Air 13型 See Thru - Clear SPK-MBA13-SEE-CLR

スペックコンピュータ

4,262円〜

23人が購入

jQuery Mobile スマートフォンサイト デザイン入門 (WEB PROFESSIONAL)

jQuery Mobile スマートフォンサイト デザイン入門 (WEB PROFESSIONAL)

アスキー・メディアワークス

2,499円〜

40人が購入

メモリーカード 32GB (PCH-Z321J)

メモリーカード 32GB (PCH-Z321J)

ソニー・コンピュータエンタテインメント

7,772円〜

9人が購入

iPhone 4S/4 防指紋性・高光沢機能性フィルム PRO GUARD AF for iPhone 4S/4 / PGAF-IPH4

iPhone 4S/4 防指紋性・高光沢機能性フィルム PRO GUARD AF for iPhone 4S/4 / PGAF-IPH4

マイクロソリューション Micro Solution Inc.

61人が購入

Amazon.co.jp