// 
//     Licensed to the Apache Software Foundation (ASF) under one
//     or more contributor license agreements.  See the NOTICE file
//     distributed with this work for additional information
//     regarding copyright ownership.  The ASF licenses this file
//     to you under the Apache License, Version 2.0 (the
//     "License"); you may not use this file except in compliance
//     with the License.  You may obtain a copy of the License at
// 
//       http://www.apache.org/licenses/LICENSE-2.0
// 
//     Unless required by applicable law or agreed to in writing,
//     software distributed under the License is distributed on an
//     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
//     KIND, either express or implied.  See the License for the
//     specific language governing permissions and limitations
//     under the License.
//

= jQueryを使用した、Webページの見た目と使いやすさの向上
:jbake-type: tutorial
:jbake-tags: tutorials 
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: jQueryを使用した、Webページの見た目と使いやすさの向上 - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, jQueryを使用した、Webページの見た目と使いやすさの向上

link:http://jquery.com/[+jQuery+]は軽量のJavaScriptライブラリで、これによってプログラマはWebページの見た目と動作を容易にすばやく向上できます。jQueryの構文は簡潔で、ターゲットとなるDOMの要素(一意の要素(`ID`)、一連の要素(`クラス`)、または任意に選択したもの)に効果を結び付ける方法として変数をCSSセレクタの形で使用します。jQueryはJavaScriptであるため、JavaScriptを適用できる任意のプロジェクトに埋め込むことができます。

このチュートリアルでは、NetBeansプロジェクトでjQueryを使用する方法と、HTML、CSSおよびJavaScriptファイルを使用するフロント・エンド・プロジェクトの作業にIDEを活用する方法を示します。最初に、関数のコード補完を呼び出す方法と、統合APIサポートを使用する方法を示します。また、`$(document).ready`関数コール、CSSセレクタ系jQueryオブジェクトの使用、jQueryの効果と動作の連結など、jQueryの主要な概念も紹介します。さらに、link:http://jqueryui.com[+jQuery UIライブラリ+]の利点を調べるために、「連絡先リスト」という単純なサンプル・ドキュメントを設定し、それにlink:http://jqueryui.com/demos/accordion/[+jQueryアコーディオン・ウィジェット+]を適用します。

HTML5アプリケーションでjQueryを使用する方法の例については、link:../webclient/html5-gettingstarted.html[+HTML5アプリケーションの開始+]のチュートリアルを参照してください。


== このチュートリアルを完了するには、次のリソースが必要です。

|===
|ソフトウェアまたはリソース |必須バージョン 

|link:https://netbeans.org/downloads/index.html[+NetBeans IDE、Java EEまたはHTML5およびPHPバンドル版+] |7.0以降 

|link:http://www.oracle.com/technetwork/java/javase/downloads/index.html[+Java Development Kit (JDK)+] |7または8 

|link:http://docs.jquery.com/Downloading_jQuery#Current_Release[+jQueryコア・ライブラリ+] |1.4.2以降 

|link:http://jqueryui.com/download[+jQueryアコーディオン・ウィジェット+] |1.8.1以降 

|link:https://netbeans.org/projects/samples/downloads/download/Samples%252FJavaScript%252Fpix.zip[+プロジェクト・リソース+] |n/a 
|===

*注意: *

* link:https://netbeans.org/projects/samples/downloads/download/Samples%252FJavaScript%252FjQueryProjectFiles.zip[+プロジェクト・リソース+]には、このチュートリアルを完了するために必要なJPGファイルが含まれます。
* プロジェクトを、正常に機能するソリューションと比較する必要がある場合は、link:https://netbeans.org/projects/samples/downloads/download/Samples%252FJavaScript%252FjQueryProjectFiles.zip[+サンプル・プロジェクトをダウンロード+]できます。(PHPバージョンとJava Webバージョンの両方が含まれています。)
* Javaプロジェクトで作業する場合は、開発環境用のサーバーを構成することを検討してください。GlassFishサーバーはIDEのJavaダウンロードに含まれており、NetBeansからデフォルトで実行するように構成されています。
* PHPプロジェクトで作業する場合は、PHPをダウンロードし、環境を構成する必要があります。詳細は、link:../../trails/php.html[+PHPの学習+]を参照してください。
* このドキュメントは、HTML、CSSおよびJavaScriptについて基本的な知識またはプログラミング経験を持つ読者を想定して書かれています。



[[settingup]]
== NetBeansプロジェクトの設定

1. 新規プロジェクトの作成から始めます。「ファイル」>「新規プロジェクト」([Ctrl]-[Shift]-[N]、Macの場合は[⌘]-[Shift]-[N])を選択します。
2. PHPプロジェクトで作業する場合は、「*PHP*」カテゴリを選択し、「*PHPアプリケーション*」を選択します。

Java Webプロジェクトで作業する場合は、「*Java Web*」カテゴリを選択し、「*Webアプリケーション*」を選択します。

[start=3]
. 「次」をクリックし、プロジェクトに`jqproject`という名前を付けます。プロジェクトを保存するコンピュータ上のディレクトリも指定します。「次」をクリックします。

[start=4]
. ステップ3で、このチュートリアルでは、ウィザードに示されるデフォルトの設定を受け入れます。

*注意:* PHPプロジェクトを初めて作成する場合で、ヘルプが必要なときは、link:../../trails/php.html[+PHPの学習+]のPHP開発のための環境の構成を参照してください。


[start=5]
. 「*終了*」をクリックしてウィザードを完了し、新しいプロジェクトを作成します。「プロジェクト」ウィンドウに`jqproject`が開き、プロジェクトの開始ファイルがエディタで開かれます。

[start=6]
. このチュートリアルの残り部分の作業に使用できるプレーンHTMLファイルを作成します。追加しようとしているjQueryコードは、バックエンド・サーバーとの通信を必要としないため、単純にHTMLファイルをブラウザで実行して結果を表示します。

プロジェクト・ノードを右クリックし、「新規」>「HTMLファイル」を選択します([Ctrl]-[N])。


[start=7]
. ファイルに`index`という名前を付け、「*終了*」をクリックします。「プロジェクト」ウィンドウで、新しい`index.html`ファイルがプロジェクト内に表示され、ファイルがエディタで開かれます。

[start=8]
. 開始ページがブラウザでどのように表示されるか見てみましょう。これを行うには、「プロジェクト」ウィンドウで`index.html`ノードを右クリックし、「表示」を選択します。(エディタでファイルの右クリック・メニューから「表示」を選択することもできます。)ページがブラウザ・ウィンドウに表示されます。

image::images/browser-test.png[title="ブラウザ・ウィンドウでの空のHTMLテンプレートの表示"]

[start=9]
. NetBeansエディタで、`index.html`ファイルの`<title>`タグの間に「`jQuery Test Project`」と入力し、ページの`<head>`タグの間に1組の`<style>`タグを作成します。変更場所は*太字*で示されています。

[source,xml]
----

<html>
  <head>
    <title>*jQuery Test Project*</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    *<style type="text/css">

    </style>*
  </head>
  <body>
    TODO write content
  </body>
</html>
----

[start=10]
. アプリケーションがデプロイされ実行されるときに`index.html`ファイルが開始ファイルとして表示されるように、プロジェクトを構成します。これを行うには、「プロジェクト」ウィンドウで`jqproject`ノードを右クリックし、「プロパティ」を選択します。
* *PHPプロジェクト:* 「*実行構成*」カテゴリを選択し、「*開始ファイル*」フィールドに「`index.html`」と入力します。
* *Java Webプロジェクト:* 「*実行*」カテゴリを選択し、「*相対URL*」フィールドに「`index.html`」と入力します。

[start=11]
. 「OK」をクリックして「プロジェクト・プロパティ」ウィンドウを閉じ、変更を保存します。

[start=12]
. この段階で、プロジェクトとともに作成されていた元のインデックス・ファイルを削除できます。PHPプロジェクトの場合これは`index.php`ファイル、Java Webプロジェクトの場合これは`index.jsp`ファイルです。

ファイルを削除するには、「プロジェクト」ウィンドウでファイルを右クリックし、「削除」を選択します。表示される確認ダイアログで、「*はい*」をクリックします。



[[addingjquery]]
== プロジェクトへのjQueryライブラリの追加

jQueryの操作を始める前に、プロジェクトにjQueryライブラリを追加する必要があります。実行していない場合は、jQueryライブラリをlink:http://jquery.com/[+http://jquery.com/+]からダウンロードします。

ダウンロードの前に、圧縮されていないバージョン、つまり「Development」を選択してください。圧縮されていないバージョンを使用することで、JavaScriptコードをエディタで調べることができ、デバッグ処理で役立ちます。

NetBeansプロジェクトにjQueryライブラリを追加するには、ライブラリのフォルダをコンピュータ上の場所から単純にコピーし、IDEの「プロジェクト」ウィンドウでプロジェクトに直接貼り付けます。詳細は次のとおりです。

1. IDEで、`js`という名前のフォルダを作成し、プロジェクトに追加します。そのためには、IDEのツールバーにある「新規ファイル」(image:images/new-file-btn.png[])ボタンをクリックします。または、[Ctrl]-[N] (Macの場合は[⌘]-[N])を押します。
2. 「*その他*」カテゴリを選択し、「*フォルダ*」を選択します。
3. フォルダに`js`という名前を付けます。

[alert]#Java Webプロジェクトの場合は、必ずプロジェクトのWebルートに`js`フォルダを置いてください。これを行うには、「*親フォルダ*」フィールドに「`web`」と入力します。#

[start=4]
. 「*終了*」をクリックしてウィザードを終了します。

[start=5]
. コンピュータにダウンロードしたjQueryライブラリを見つけます。現在、ライブラリの最新バージョンは1.4.2なので、ファイルの名前は通常`jquery-1.4.2.js`です。ファイルをクリップボードにコピーします([Ctrl]-[C]、Macの場合は[⌘]-[C])。

[start=6]
. ライブラリ・ファイルを新しい`js`フォルダに貼り付けます。これを行うには、`js`を右クリックし、「貼付け」を選択します([Ctrl]-[V]、Macの場合は[⌘]-[V])。フォルダ内に`jquery-1.4.2.js`ファイル・ノードが表示されます。
|===

|
==== PHPプロジェクト:

 |


==== Java Webプロジェクト:

 

|image:images/jquery-lib-php.png[title="プロジェクトへのjQueryライブラリの直接貼付け"] |image:images/jquery-lib-java.png[title="プロジェクトへのjQueryライブラリの直接貼付け"] 
|===

[start=7]
. エディタで、`index.html`ファイルからjQueryライブラリを参照します。これを行うには、1組の`<script>`タグを追加し、`src`属性を使用してライブラリの場所を指します。変更場所は*太字*で示されています。

[source,xml]
----

<html>
  <head>
    <title>jQuery Test Project</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    *<script type="text/javascript" src="js/jquery-1.4.2.js"></script>*

    <style type="text/css">

    </style>
  </head>
  ...
----

[start=8]
. ファイルを保存します([Ctrl]-[S]、Macの場合は[⌘]-[S])。

これで、jQueryライブラリが`jqproject`プロジェクトに追加され、`index.html`ファイルから参照されるようになりました。jQueryの機能をページに追加し始めることができます。



[[gettingacquainted]]
== jQueryに習熟する

jQueryは、動的に適用されるJavaScriptの属性と動作をDOM (Document Object Model)の要素に結び付けることによって機能します。DOM に要素を追加し、そのプロパティに影響を与えてみましょう。クリックしたときに色が黒から青に変化する見出しを作成します。

1. 構造上は`<h1>`要素である、見出しの作成から始めます。「`TODO write content`」というコメントを除去し、`<body>`タグの間に次のように入力します。

[source,xml]
----

<h1>Test.</h1>
----

[start=2]
. 次に、適用される要素を青で表示するCSSクラスを作成します。ドキュメントの`<head>`の`<style>`タグの間に次のように入力します。

[source,java]
----

.blue { color: blue; }
----

[start=3]
. 次に、jQueryコマンドを置く場所を設定します。ドキュメントの`<head>`に、たとえばjQueryライブラリにリンクしている`<script>`タグの後に、新しい`<script>`タグのセットを追加します。変更場所は*太字*で示されています。

[source,xml]
----

<html>
    <head>
        <title>jQuery Test Project</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script type="text/javascript" src="js/jquery-1.3.2.js"></script>

        *<script type="text/javascript">

        </script>*

        <style type="text/css">
            .blue { color: blue; }
        </style>
    </head>
    ...
----

エディタ内で右クリックし、「フォーマット」を選択すると、コードの体裁を整えることができます。

追加するjQuery命令は、DOMのすべての要素がブラウザにロードされた後にのみ実行される必要があります。jQuery動作はDOMの要素に接続されるので、期待する結果を得るにはこれらの要素がjQueryで使用できる必要があるため、これは重要です。jQueryは、`$`で表される、jQueryオブジェクトの後に続く組込みの`(document).ready`関数を使用して、これを処理してくれます。

[start=4]
. 先ほど作成したscriptタグの間に次の構文を追加します。

[source,java]
----

$(document).ready(function(){

});
----

この関数には、かわりに使用できる省略形もあります。


[source,java]
----

$(function(){

});
----
使用するjQueryの命令は、JavaScriptメソッドの形式をとり、パラメータの配列を表すオプションのオブジェクト・リテラルを持ちます。また、適切なとき、つまりDOMが完全にロードされた後にのみ実行されるように、`(document).ready`関数内の中括弧`{}`の間に置く必要があります。

この段階で、`index.html`ファイルは次のようになるはずです。

[source,xml]
----

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <title>jQuery Test Project</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script type="text/javascript" src="js/jquery-1.3.2.js"></script>

        <script type="text/javascript">
            $(document).ready(function(){

            });
        </script>

        <style type="text/css">
            .blue { color: blue; }
        </style>
    </head>
    <body>
        <h1>Test.</h1>
    </body>
</html>
----

[start=5]
. jQueryの構文がどのように機能するかを示すために、基本的なものを試してみましょう。「Test」という語をクリックしたときにそれを青に変化させるjQuery命令をページに追加します。これを行うには、jQueryがマウス・クリックを受け取ったときに、CSSクラス`.blue`をDOMの`<h1>`要素に追加するようにします。

`(document).ready`関数内の中括弧`{}`の間に、次のコードを入力します。

[source,java]
----

$("h1").click(function(){
	$(this).addClass("blue");
});
----

[start=6]
. ドキュメントを保存し([Ctrl]-[S]、Macの場合は[⌘]-[S])、エディタ内で右クリックし、「表示」を選択してWebブラウザにロードします。機能するかどうかテストします。「Test」という語をクリックすると、青に変化するはずです。

image::images/blue-test.png[title="テキストをクリックしたときの青への変化"]

この例では、CSSセレクタ"`h1`" に一致する要素が見つかったときに、jQueryの`click()`関数を使用してjQueryの`addClass()`関数を呼び出しています。`$(this)`はコール元の要素を参照します。複数の`<h1>`をページに追加した場合、この1セットのルールによりそれらのすべてに同じ動作が適用され、それぞれが独立してjQueryと対話します。(簡単な課題として自分で試すことができます。)

[start=7]
. 関数を単純に連結して、より複雑な動作や、さらには順序付けられた動作を作成できることも、jQueryの重要な特質です。これを示すために、ゆっくりフェード・アウトするjQuery命令を`click()`関数に追加しましょう。`fadeOut("slow")` jQuery関数を`addClass`関数の後に置いて、次のようなコード行にします。

[source,java]
----

$(this).addClass("blue").fadeOut("slow");
----
完成したjQuery関数は次のようになるはずです。

[source,java]
----

$(document).ready(function(){
    $("h1").click(function(){
        $(this).addClass("blue").fadeOut("slow");
    });
});
----

[start=8]
. ブラウザで、ページをリフレッシュし、「Test」をクリックします。青に変化した後、フェード・アウトしてページから消えます。(再度試すには、ページをリフレッシュする必要があります。)


=== NetBeansのコード補完とAPIサポート

エディタで入力するときは常に、[Ctrl]-[Space]を押してコード補完を呼び出すことができます。IDEでは、選択できる候補のリストが表示されることに加え、リストの項目を定義し、コード・スニペット例を示し、ターゲット・ブラウザのサポートを示すAPIドキュメント・ウィンドウが表示されます。

image::images/code-completion.png[title="[Ctrl]-[Space]の押下による、コード補完ウィンドウとAPIドキュメント・ウィンドウの表示"]

IDEのJavaScriptオプションのウィンドウを開くと、コード補完およびAPIドキュメントのターゲット・ブラウザを指定できます。「ツール」>「オプション」(Macの場合は「NetBeans」>「プリファレンス」)を選択し、「その他」>「JavaScript」を選択します。




[[addingaccordion]]
== プロジェクトへのjQueryアコーディオン・ウィジェットの追加

コアjQueryライブラリに含まれているJavaScript動作を使用して、上記の単純なテストを作成しました。次に、より現実的な例を調べるために、基本的なHTMLマークアップを使用して従業員の連絡先リストを設定しましょう。その後、連絡先リストにlink:http://jqueryui.com/demos/accordion/[+jQueryアコーディオン・ウィジェット+]を適用します。

アコーディオン・ウィジェットはlink:http://jqueryui.com/[+jQuery UIライブラリ+]の一部です。UIライブラリはコア・ライブラリの最上位に位置し、モジュール式アプローチによってWebページでの対話、ウィジェットおよび効果を有効にできます。ファイル・サイズを最小に保つことができ、jQueryのダウンロード・インタフェースlink:http://jqueryui.com/download[+http://jqueryui.com/download+]から必要なコンポーネントのみを適宜選択できます。

まだ実行していない場合は、link:http://jqueryui.com/download[+http://jqueryui.com/download+]にアクセスし、アコーディオン・ナビゲーション・ウィジェットをダウンロードします。アコーディオン・ウィジェットを選択すると、UIコア・ライブラリとウィジェット・ファクトリも自動的に選択されます。また、ダウンロード・ページから、「`UI lightness`」テーマがデフォルトで選択され、ダウンロード・パッケージに含められます。<<usingcss,次の項で>>このテーマを連絡先リストに適用します。

1. 次のコードをドキュメントの`<h1>Test.</h1>`のかわりに貼り付けます。

[source,html]
----

<div id="infolist">

    <h3><a href="#">Mary Adams</a></h3>
    <div>
        <img src="pix/maryadams.jpg" alt="Mary Adams">
        <ul>
            <li><h4>Vice President</h4></li>
            <li><b>phone:</b> x8234</li>
            <li><b>office:</b> 102 Bldg 1</li>
            <li><b>email:</b> m.adams@company.com</li>
        </ul>
        <br clear="all">
    </div>

    <h3><a href="#">John Matthews</a></h3>
    <div>
        <img src="pix/johnmatthews.jpg" alt="John Matthews">
        <ul>
            <li><h4>Middle Manager</h4></li>
            <li><b>phone:</b> x3082</li>
            <li><b>office:</b> 307 Bldg 1</li>
            <li><b>email:</b> j.matthews@company.com</li>
        </ul>
        <br clear="all">
    </div>

    <h3><a href="#">Sam Jackson</a></h3>
    <div>
        <img src="pix/samjackson.jpg" alt="Sam Jackson">
        <ul>
            <li><h4>Deputy Assistant</h4></li>
            <li><b>phone:</b> x3494</li>
            <li><b>office:</b> 457 Bldg 2</li>
            <li><b>email:</b> s.jackson@company.com</li>
        </ul>
        <br clear="all">
    </div>

    <h3><a href="#">Jennifer Brooks</a></h3>
    <div>
        <img src="pix/jeniferapplethwaite.jpg" alt="Jenifer Applethwaite">
        <ul>
            <li><h4>Senior Technician</h4></li>
            <li><b>phone:</b> x9430</li>
            <li><b>office:</b> 327 Bldg 2</li>
            <li><b>email:</b> j.brooks@company.com</li>
        </ul>
        <br clear="all">
    </div>
</div>
----
全体を囲んでいる`<div>`要素には、`id`属性と値`infolist`が指定されています。この`<div>`要素内に、`<h3>`タグと`<div>`タグが4セットあり、イメージと順序なしリストが含まれています。

[start=2]
. 前述のマークアップにいくつかのインラインCSSルールを追加します。テストの目的で作成した`.blue`スタイル・ルールを削除します。その場所に、次のルールを追加します。変更場所は*太字*で示されています。

[source,xml]
----

<style type="text/css">
    *ul {list-style-type: none}
    img {padding-right: 20px; float:left}

    #infolist {width:500px}*
</style>
----

`<style>`タグ内に入力するときは、[Ctrl]-[Space]を押して、IDEに組み込まれているCSSコード補完を利用します。


[start=3]
. ファイルを保存します([Ctrl]-[S]、Macの場合は[⌘]-[S])。

[start=4]
. 次に、上記のコード・フラグメントで参照されているJPG人物写真を追加します。<<requiredSoftware,先にダウンロードしたプロジェクト・リソース>>から`pix`ディレクトリを取出し、ディレクトリ全体をプロジェクト・フォルダにコピーして`index.html`と同じレベルに置きます。まもなく、NetBeansで「プロジェクト」ウィンドウが自動的に更新され、新しいディレクトリがプロジェクトに手動で追加されたことが反映されます。

[start=5]
. ブラウザに切り替え、ページをリフレッシュします。

image::images/structured-list.png[title="ブラウザに表示された構造化リスト"]

このドキュメントにはいくつか問題があり、対処していきます。まず、探している人物をすばやく見つけるためにリストに目を通すことが、必要以上に困難になっています。ページをスクロールし、直接には関心のない多量の情報を目で調べる必要があります。リスト内の連絡先が4件なら扱えるかもしれませんが、たとえば50件に増えると、リストははるかに使用しづらくなるでしょう。次に、ドキュメントは視覚的に単純で、ほとんどのWebサイト・デザイン、特に、グラフィックの個性の強いデザインとは外観的に調和しないでしょう。jQueryアコーディオン・ウィジェットをjQuery UIのデフォルト・テーマと組み合せて使用することで、これらの問題に対処します。

[start=6]
. アコーディオン効果を生成するには、アコーディオン・ウィジェットをダウンロードしたコンピュータ上の場所に移動します。ダウンロードしたフォルダの中に、「`development-bundle`」という名前のフォルダがあります。`development-bundle`フォルダ内の`ui`フォルダを展開し、次の3つのスクリプトを見つけます。
* `jquery.ui.core.js`
* `jquery.ui.widget.js`
* `jquery.ui.accordion.js`

Developmentバージョンのツールキットのスクリプトは_最小化されていない_ため、コードをエディタで表示して人間が読むことができます。通常、本番の準備ができたアプリケーションに使用する場合は、ダウンロード時間の節約のために、圧縮され最小化されたバージョンに切り替えることをお薦めします。


[start=7]
. 3つのスクリプトをコピーし([Ctrl]-[C]、Macの場合は[⌘]-[C])、IDEに戻り、`jqproject`フォルダ内に<<js,先に作成した>>`js`フォルダに貼り付けます。

[Ctrl]-[V] (Macの場合は[⌘]-[V])を押すか、`js`フォルダを右クリックして「貼付け」を選択することで、貼付けできます。

`development-bundle`フォルダ内の`ui`フォルダには、`jquery-ui-1.8.1.custom.js`という名前のファイルもあります。このファイルは、前述の3つのスクリプトを1つのスクリプトにまとめたものです。3つの個別のスクリプトのかわりに、このファイルをプロジェクトに貼り付けることもできます。


[start=8]
. `index.html`ページでスクリプトを参照するために、これらの新しいJavaScriptファイルにリンクする3つの`<script>`タグを入力します。`<script>`タグは、コアjQueryライブラリ`jquery-1.4.2.js`を参照する`<script>`タグの直後に追加できます。既存の`<script>`タグをモデルとして使用します。

[start=9]
. `(document).ready`関数内に作成したテスト・コードを削除します。これはもう必要ありません。

これで、ファイルの`<head>`タグは次のようになるはずです。

[source,xml]
----

<head>
    <title>jQuery Test Project</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

    <script type="text/javascript" src="js/jquery-1.4.2.js"></script>
    <script type="text/javascript" src="js/jquery.ui.core.js"></script>
    <script type="text/javascript" src="js/jquery.ui.widget.js"></script>
    <script type="text/javascript" src="js/jquery.ui.accordion.js"></script>

    <script type="text/javascript">
        $(document).ready(function(){

        });
    </script>
</head>
----

[start=10]
. 静的なスタイルなしリストにアコーディオン動作を与えるには、1行のjQueryコードを追加するのみで済みます。次の行を`(document).ready`関数に追加します。変更場所は*太字*で示されています。

[source,java]
----

$(document).ready(function(){
    *$("#infolist").accordion({
        autoHeight: false
    });*
});
----
このコード行で、`#infolist`は、`id`属性と値`infolist`を持つ一意のDOM要素、つまり連絡先リストに接続されているCSSセレクタです。これは、典型的なJavaScriptドット表記法(「`.`」)を使用して、`accordion()`メソッドを使用してこの要素を表示するjQuery命令に接続されています。

上記のスニペットでは、「`autoHeight: false`」も指定しています。これは、アコーディオン・ウィジェットが各パネルの高さをマークアップ内で最も高いコンテンツ部分に基づいて設定することを防止します。詳細は、link:http://docs.jquery.com/UI/Accordion[+アコーディオンのAPIドキュメント+]を参照してください。


[start=11]
. ファイルを保存します([Ctrl]-[S]、Macの場合は[⌘]-[S])。

[start=12]
. Webブラウザに戻り、リフレッシュします。いずれかの名前(最上部のもの以外)をクリックし、アコーディオン効果のアクションを確認します。jQueryアコーディオン・ウィジェットは、DOMの処理およびユーザーのマウス・クリックに対する応答の詳細をすべて処理します。

image::images/accordion-list.png[title="ユーザーのクリックを処理し、アコーディオン効果を生成するアコーディオン・ウィジェット"]



[[usingcss]]
== jQueryのデフォルト・テーマを使用したスタイル拡張

これで、プロジェクトは必要な動作を備えましたが、かなり単純に見え、まだ見た目が整っていません。jQueryのデフォルトの「`UI lightness`」テーマを取り入れることで、これに対処しましょう。

1. アコーディオン・ウィジェットをダウンロードしたコンピュータ上の場所に移動します。ダウンロードしたフォルダの中で、「`development-bundle`」>「`themes`」>「`ui-lightness`」フォルダを展開します。
2. `ui-lightness`フォルダ内で、`jquery-ui-1.8.1.custom.css`ファイルと、テーマを正しくレンダリングするために必要なすべてのイメージが含まれている`images`フォルダをコピーします([Ctrl]-[C]、Macの場合は[⌘]-[C])。
3. IDEで、`css`という名前の新しいフォルダをプロジェクト内に作成します。このフォルダに、アコーディオン・ウィジェット用の「`UI lightness`」テーマを格納します。

これを行うには、プロジェクト・ノードを右クリックし、「新規」>「フォルダ」を選択します。(「フォルダ」がオプションとして表示されない場合は、IDEのツールバーにある「新規ファイル」(image:images/new-file-btn.png[])ボタンをクリックし、新規ファイル・ウィザードで「その他」>「フォルダ」を選択します。)フォルダに`css`という名前を付け、`index.html`ファイルと同じディレクトリ内に置きます。

[alert]#Java Webプロジェクトの場合は、必ずプロジェクトのWebルートに`css`フォルダを置いてください。これを行うには、「*親フォルダ*」フィールドに「`web`」と入力します。#

[start=4]
. 2つの項目をこの新しい`css`フォルダに直接貼り付けます。これを行うには、`css`フォルダ・ノードを右クリックし、「貼付け」を選択します。プロジェクト・フォルダは次のようになるはずです。
|===

|
==== PHPプロジェクト:

 |


==== Java Webプロジェクト:

 

|image:images/proj-win-php.png[title="プロジェクトに挿入されたjQueryデフォルト・テーマ"] |image:images/proj-win-java.png[title="プロジェクトに挿入されたjQueryデフォルト・テーマ"] 
|===

[start=5]
. `index.html` Webページ内から`jquery-ui-1.8.1.custom.css`ファイルを参照します。ページのhead内に次の`<link>`タグを追加します。

[source,java]
----

<link rel="stylesheet" href="css/jquery-ui-1.8.1.custom.css" type="text/css">
----

[start=6]
. ファイルを保存します([Ctrl]-[S]、Macの場合は[⌘]-[S])。

[start=7]
. Webブラウザに戻り、ページをリフレッシュします。これで、jQueryのデフォルト・テーマを使用してリストが表示されるようになり、スタイル指定のない単純なリストに比べて外観が改善されました。

image::images/ui-lightness-theme.png[title="jQueryデフォルト・テーマで拡張されたアコーディオン・ウィジェットの外観"]



[[summary]]
== サマリー

このチュートリアルでは、プロジェクトにjQueryライブラリを追加する方法と、jQuery構文を使用していくつかの基本的な命令を記述する方法を学びました。また、jQueryがCSSセレクタに似た変数を使用してDOM (Document Object Model)と対話し、Webページの要素の見た目と動作に影響を与える仕組みも学びました。

最後に、単純な連絡先リストにアコーディオン・ウィジェットを適用することで、jQuery UIライブラリの機能を簡易に調査しました。アコーディオン効果を実装した後、jQueryのデフォルトのスタイル・テーマをリストに適用しました。jQueryを使用すると動的なWebページを作成できると同時に、全体的な見た目と使いやすさを改善できるという利点がよくわかったはずです。

link:/about/contact_form.html?to=3&subject=Feedback: Using jQuery to Enhance the Appearance and Usability of a Web Page[+このチュートリアルに関するご意見をお寄せください+]




[[seealso]]
== 関連項目

IDEでのHTML5アプリケーションおよびJavaScriptのサポートの詳細は、link:https://netbeans.org/[+netbeans.org+]で次のソースを参照してください。

* link:../webclient/html5-gettingstarted.html[+HTML5アプリケーションの開始+]。ChromeのNetBeans Connector拡張機能をインストールし、単純なHTML5アプリケーションを作成および実行する方法を示すドキュメントです。
* link:../webclient/html5-editing-css.html[+HTML5アプリケーションでのCSSスタイル・シートの操作+]。このチュートリアルで作成したアプリケーションを継続するドキュメントで、IDEでCSSのウィザードおよびウィンドウのいくつかを使用する方法、およびChromeブラウザの「検査」モードを使用してプロジェクト・ソース内の要素をビジュアルに特定する方法を示します。
* link:../webclient/html5-js-support.html[+HTML5アプリケーションでのJavaScriptのデバッグとテスト+]。IDEでJavaScriptファイルをデバッグおよびテストするのに役立つツールをIDEが提供する方法を示すドキュメントです。
* link:js-toolkits-dojo.html[+JSONを使用したDojoツリーのArrayListへの接続+]。Dojoツールキットの概要を説明し、AjaxとJSONを使用してバックエンド・サーバーと対話する手順を示します。
* link:../../docs/php/ajax-quickstart.html[+Ajax入門(PHP)+]。PHPテクノロジを使用した単純なアプリケーションのビルド方法を示すと同時に、Ajaxリクエストの基盤となるプロセス・フローについて解説します。
* link:ajax-quickstart.html[+Ajax入門(Java)+]。サーブレット・テクノロジを使用した単純なアプリケーションのビルド方法を示すと同時に、Ajaxリクエストの基盤となるプロセス・フローについて解説します。

jQueryの詳細は、公式ドキュメントを参照してください。

* 公式ホーム・ページ: link:http://jquery.com[+http://jquery.com+]
* UIホーム・ページ: link:http://jqueryui.com/[+http://jqueryui.com/+]
* チュートリアル: link:http://docs.jquery.com/Tutorials[+http://docs.jquery.com/Tutorials+]
* ドキュメントのメイン・ページ: link:http://docs.jquery.com/Main_Page[+http://docs.jquery.com/Main_Page+]
* UIデモおよびドキュメント: link:http://jqueryui.com/demos/[+http://jqueryui.com/demos/+]


