このページの本文へ

前へ 1 2 3 4 5 6 次へ

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

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

jQueryのイベントをチュートリアルで学ぶ(前編)

2009年08月19日 18時46分更新

文● 西畑一馬/to-R


 jQueryを使ったプログラムの基本的な要素として、セレクターと(X)HTML/CSSを操作する命令について解説してきました。今回はもう1つの重要な要素である「イベント」を紹介します。

命令が実行されるタイミングを決める「イベント」

 これまで見てきたように、jQueryを使ったプログラムは、セレクターで特定の(X)HTML要素を指定し、(X)HTMLやCSSを追加・変更します。サンプルプログラムは理解しやすいように、Webブラウザーで開くといきなりプログラムが実行されるものでしたが、本来必要なのはサイト制作者が意図したタイミングで実行されるプログラムですよね。では、タイミングはどのようにして指定するのでしょうか?

 たとえば、第1回で紹介したアコーディオンパネルは「ユーザーが特定の要素をマウスでクリックしたときに、要素の高さを変更する」プログラムでした。ほかにも、マウスオーバーで画像が切り替わるメニュー、ドラッグ&ドロップで並び順を変更できるナビゲーションなど、jQueryやJavaScriptを使ったユーザーインターフェイス(UI)を改めて見てみると、どれも何らかのきっかけとなる出来事があって、(X)HTMLやCSSが変更されていることが分かります。

 こうした、プログラムが実行される“きっかけ”を「イベント」と言います。jQueryでは(というよりもJavaScript一般に言えることですが)、イベントを感知(発見)したタイミングで、設定しておいたプログラムが実行されます。

 イベントを感知するにはいくつかの命令を使います。


(X)HTMLが読み込まれたタイミングで実行するready()

 「命令が実行されるきっかけ」は、クリックやマウスオーバーのように、ブラウザー上のユーザーによる操作だけではありません。「ブラウザーがWebページを読み込み終わった」というきっかけも立派なイベントです。

 これまで、“お約束”ということで使ってきた以下のコードを改めて見てみましょう。


$(function(){
    //(X)HTMLが読みこまれた際に実行したい命令
})


 第3回で紹介したように、上記のコードは以下の省略形でした。

 

$(document).ready(function(){
    //(X)HTMLが読みこまれた際に実行したい命令
})

 ready() は、「(X)HTMLの読み込みが完了した」というイベントを感知する命令です。ready()の左側では、セレクターを $(document) のように記述して、Webページ全体(document)を対象にしています。したがって、$(function(){...}) は、「Webページ全体の読み込みが終わり、準備ができたら命令を実行しなさい」という処理の省略形だったのです。

 ready(...) の括弧には function(){...} と記述し、その内側に実行したい処理を記述します。括弧内に function(){...} と書くのは、ready()に限らず、イベントを感知して命令を実行するときに一貫した決まりです。

jQueryの基本

他のイベント処理でもready()は必須

 ready() はイベントを感知する命令の一種ですが、他のイベントを感知したい場合にも、 $(function(){...}) の内側に処理の内容を記述します。たとえば、以下のソースコードは、「button要素がクリックされたら命令を実行する」というプログラムです。詳細は後述しますが、click() は「特定の要素がクリックされた」というイベントを感知する命令です。


<script type="text/javascript">
$("button").click(function(){
    //button要素がクリックされた際に実行したい命令
})
</script>

 このscript要素をhead要素内に記述した場合、ブラウザーはページの読み込みがまだ終わっていないためbutton要素の存在を見つけられず、プログラムは正常に動作しません(第3回を参照)。

 そこで、次のようにプログラム全体を $(function(){...}) の内側に入れ込みます。


<script type="text/javascript">
$(function(){
    $("button").click(function(){
        //button要素がクリックされた際に実行したい命令
    })
})
</script>

 これでブラウザーはscript要素の記述位置に関係なくbutton要素を発見でき、プログラムはページの読み込みが終わったあとに実行されます。 $(function(){...}) を使えば、button要素がクリックされたタイミングで実行したい命令を設定できます。

 jQueryでプログラムを記述する際には、$(function(){...}) の内側に記述していくことを改めて覚えておきましょう。

 それでは、次ページからはjQueryでイベントを感知するための具体的な方法について紹介していきます。

前へ 1 2 3 4 5 6 次へ

Get Microsoft Silverlight

関連記事

はてブ注目ランキング
  1. Google、リッチスニペットでイベントの日時や場所表示に対応15 users
  2. 大手に負けないネットショップの作り方12 users
  3. JavaScriptでRSSからPhotoshop画像を生成!9 users
  4. Adobe BridgeのJavaScriptでXMLを操作しよう8 users
  5. Google、中国から撤退か Google.cn 閉鎖の可能性も7 users
  6. もう配色には困らない!「Adobe Kuler」1456 users
  7. 30分でできる!Webサイトを高速化する6大原則1231 users
  8. Web制作会社が作った!超使えるJavaScriptライブラリ1044 users
  9. 黒船Google汐留沖に出現でWeb広告業界に激震!975 users
  10. Web制作に超便利!無料のプロトタイプ作成ツール777 users
最新記事

特設サイト

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

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

Web Professional 連載記事一覧

Norton Internet Security 2010

Norton Internet Security 2010

シマンテック

5278円~

36%OFF!!

ソースネクスト 筆王ZERO (2010年パッケージ) (Amazon.co.jp購入者対象:その場で200円割引き)

ソースネクスト 筆王ZERO (2010年パッケージ) (Am…

ソースネクスト

3672円~

26%OFF!!

筆まめVer.20 通常版DVD-ROM

筆まめVer.20 通常版DVD-ROM

クレオ

4432円~

31%OFF!!

大航海時代 Online ~El Oriente~

大航海時代 Online ~El Oriente~

コーエー

4645円~

24%OFF!!

Norton Internet Security 2010 ニコニコパック

Norton Internet Security 2010 ニ…

シマンテック

5180円~

37%OFF!!

Adobe Photoshop Elements 8 日本語版 Windows版

Adobe Photoshop Elements 8 日本語版…

アドビシステムズ

1万1340円~

22%OFF!!

PowerDirector 8 Ultra 特別優待パッケージ版

PowerDirector 8 Ultra 特別優待パッケージ版

サイバーリンク トランスデジタル

5832円~

43%OFF!!

楽々はがき2010 開運年賀状

楽々はがき2010 開運年賀状

ジャストシステム

1692円~

19%OFF!!

Amazon.co.jp