初心者向けのjQuery入門講座|デザイナー向けのJavaScriptライブラリ

このエントリーをはてなブックマークに追加
索引
1章:jQuery入門
2章:jQuery基礎
3章:jQuery発展
番外編:研究

hoverイベント

2つのfunctionを設定するイベント

マウスオーバーやマウスアウトに対する処理もjQueryなら簡単に対応できます。ここで紹介するhoverイベントは以下の構文のようにイベント内にマウスオーバーしたときの処理と、マウスアウトしたときの処理を設定します。事の気注意するのはカンマで2つの処理を区切ることです。忘れがちなので気を付けましょう。

hoverの構文
$(セレクタ).hover(マウスオーバーの処理, マウスアウトの処理)

サンプル(02/03_01.html)で機能を確認してみましょう。このサンプルでは構文が確認しやすいようにfunctionをあらかじめ設定しました。

まずは以下のソース8行目を確認して下さい。hoverイベントを利用して、マウスオーバー(領域内にマウスカーソルが入った)時にmouseOverFuncを、マウスアウト(領域外にマウスカーソルが出た)時にmouseOutFuncを実行するように設定しました。

mouseOverFuncは1〜3行目で作成され、2行目では以前も紹介したcssメソッドによって背景色をオレンジ(#F93)変える処理をしています。mouseOutFuncは4〜6行目で作成され、5行目ではcssメソッドによって背景色水色(#09C)変える処理をしています。mouseOverFuncもmouseOutFuncもreadyイベントの外に書きましたが中に書いても機能します。

では実際にサンプルでdiv領域にマウスカーソルを重ねたり外したりしてdivの背景色が変化することを確認して下さい。このようにjQueryではよく利用されるインタラクティブな処理を簡単に実現することができます。

function mouseOverFunc() {
	$("div").css("background-color", "#F93");	
}
function mouseOutFunc() {
	$("div").css("background-color", "#09C");	
}
$(function () {	
	$("div").hover(mouseOverFunc, mouseOutFunc);			
});

無名関数を利用したサンプル(02/03_02.html)も用意したので合わせて確認しましょう。1行で書こうとすると見難くなるので、サンプルのように見やすく改行すると良いでしょう。ここでもカンマを忘れがちなので気を付けてください。

$("div").hover(
	function () {//---マウスオーバーの処理
		$("div").css("background-color", "#F93");	
	},//---カンマを忘れずに
	function () {//---マウスアウトの処理
		$("div").css("background-color", "#09C");	
	}
);

無名関数を利用するとソースが複雑になりますが、トータルで見れば各文字数は少なくなりますし、不用意にfunction名が増えることも防げるので慣れるようにしましょう。

滅多に使わないのです

hoverイベントを利用すれば、ロールオーバーイメージも簡単に作成できますが、このような処理はcssでも可能なので、以外と利用機会はありません。しかしjQueryではイベントの()内に複数のfunctionが設定できるものがあると覚えておきましょう。次回紹介するtoggleイベントも()内に複数のfunctionが設定できます。