jQuery
jQueryはJavaScriptのライブラリです。
本来のjavascriptでは難しい、または面倒臭い記述を簡単に設定できる便利な機能を持っています。
jQueryを使って動的なwebサイトを作ってみましょう
prototype.js,YUIとの比較
http://www.prototypejs.org/prototype.jsでもAjaxやDOM操作はできますが、現在、勢いがあるのはやはりjQueryでしょう。
「googleやMozillaなどのメイン企業から公式に認められている」「記述のシンプルさ」などは大きなアドバンテージといえます。
prototypeとは競合せずに利用する手段があるので、prototypeから徐々にjQueryに移行するという手段もあります。
jQueryダウンロード
http://jquery.com/jQueryプラグイン
→プラグインの紹介The AJAX Libraries API
google.load
http://code.google.com/intl/ja/apis/ajaxlibs/documentation/ GoogleからJavaScriptライブラリ配布。一度読み込んだ情報は一時ファイルとして記憶されるため、転送量の軽減が期待できる。2009/1/14にjQuery1.3.0リリース。v1.2.6以前から属性セレクタなどの仕様変更がありました。
2009/1/17にjQuery1.3.1リリース。バグ修正。
2009/2/20にjQuery1.3.2リリース。セレクタがIEでも高速など。
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript"\>google.load("jquery", "1.3.1");</script>
sizzle
jQuery1.3では高速なCSSセレクタエンジン「sizzle」を採用しています。
http://github.com/jeresig/sizzle/tree/masterjQuery入門講座
要素選択
まずは各要素の選択・指定方法から。以下の文字をクリックしてみてください。
$('#xxxx') idを選択
$('.xxxx') classを選択
$('[xxxx]') 属性で選択 (属性の有無)
$('[attr="xxxxx"]') 属性の内容で選択 (属性の内容 ~と等しい)
$('[attr*="xxxx"]') 属性の内容で選択 (属性の内容 ~を含む)
$('[attr^="xxxx"]') 属性の内容で選択 (属性の内容 ~で始まる)
$('[attr$="xxxx"]') 属性の内容で選択 (属性の内容 ~で終わる)
asdf$('xxxx>yyyy') 子要素を選択zxcv
asdf$('xxxx yyyy') 子孫要素を選択子孫要素を選択zxcv
※v1.2.6以前では[@attr="val]のような記述になります。
イベント
以下のボタンをそれぞれ触ってみてください
イベント応用と画像切り替え
jquery標準機能:クリックorマウスホバー状態によって画像が変わる。
今までのJavaScriptならばタグのなかにonclick=~などとhtmlとJavascriptが混じった汚いコードだったり、getElementById()のような長い記述だったのが、jQueryの属性指定のおかげで綺麗に分離ができる。
クリック
ホバー
トグルスイッチ
テキスト内容を書き換える
DOM操作の代表。文字列だけでなく、タグも挿入できる。
| jqueryDOM | タグの内外 | 要素の前後 |
| text | テキストそのもの | |
| html | テキストそのもの(htmlタグ含む) | |
| append | 内側 | 後 |
| prepend | 内側 | 前 |
| after | 外側 | 後 |
| before | 外側 | 前 |
| wrap | 外側 | 前後 |
- aaaa
- ア
アトリビュート・スタイルシートを書き換える
attr()はアトリビュートを書き換える
css()はスタイルシートを書き換える
val()はフォームの内容を書き換える
toggleClass()はクラス属性の有無を切り換える
フィルタ
テーブルのセル内容を要素の順番によって切り替える
要素のタグ、配列の最初の要素・最後の要素・偶数・奇数などの条件によって、異なる処理を行う。
例:背景色を変えてみる
表示・非表示切り替え
この技術を応用することで動的なタブ切り替えや、擬似的な「続きを読む」機能、アコーディオンメニューなどが実装できる。
アニメーションエフェクト
ハンドラ
jQuery機能拡張
var Manager = $({});
$.extend(Manager, {
act: function(ele) {
ele.text('off - click');
},
act2: function(ele) {
ele.text('on');
}
}
);
$(function(){
var ele = $('#user');
Manager.act(ele);
ele.click(function(){
Manager.act2(ele);
});
});
アコーディオン風メニュー
フォームのラジオボタンのチェックを強制的に変更する
デザインに凝ったサイトでのフォーム画面でラジオボタンを消すとlabelチェックの効果が現れない。
クリックした対象とチェックを同期させるためにjqueryを扱う。
php等を使わずに初期状態を変更することもできる。
16進数変換
photoshopで使う10進数の色表示をブラウザ用の16進数に変更する
1010進数を16進数に変換↓1616進数を10進数に変換↑
メモ帳もどき
改行数に合わせてtextareaの高さを自動変更する
本来ならrows属性を変更するところだが、今回はスタイルシートで絶対値の高さを変更する。
書き換えるタイミングは入力直前に判定してしまうkeudownではなく、入力直後に判定するkeyupが望ましい。
すべて選択・選択解除するチェックボックス
フォームのUI向上に。
キーボードの値を取得・キーボードで入力フォームの内容を変更する
dataメソッド
DOMオブジェクトにデータを記憶させます
script要素の文章を可視化する
灰色背景に書かれているコードはjQueryでscriptタグの中身をコピーし、htmlに自動生成されたものです。
jQuery
- jQuery
- jQueryダウンロード
- jQueryプラグイン
- The AJAX Libraries API
- sizzle
- jQuery入門講座
- 要素選択
- イベント
- イベント応用と画像切り替え
- テキスト内容を書き換える
- アトリビュート・スタイルシートを書き換える
- フィルタ
- 分散して書き換える
- 表示・非表示切り替え
- アニメーションエフェクト
- ハンドラ
- jQuery機能拡張
- アコーディオン風メニュー
- タブ風メニュー
- フォームのラジオボタンのチェックを強制的に変更する
- 16進数変換
- メモ帳もどき
- 改行数に合わせてtextareaの高さを自動変更する
- すべて選択・選択解除するチェックボックス
- キーボードの値を取得・キーボードで入力フォームの内容を変更する
- dataメソッド
- script要素の文章を可視化する
- ▼ サイトマップ

