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

このエントリーをはてなブックマークに追加
索引
Core:コアとなる仕組み
Selectors:セレクタ
Attributes:属性
Traversing:対象の変更
Manipulation:操作
CSS:スタイルシート
Events:イベント
Effects:演出効果
Ajax:xml等との連携
Utilities:ユーティリティ
Data:データ
Miscellaneous:諸々
Deferred:処理管理
Callbacks:コールバック
Internals:内部処理

.mouseup( )マウスボタンを離した時の処理を設定

構文

マウスボタンを離した時の処理を設定返値:jQueryオブジェクト
jQo.mouseup( function )ver1.0〜
jQo.mouseup( )ver1.0〜
jQo.mouseup( object, function )ver1.4.3〜

機能

jQueryオブジェクトで指定した要素上でマウスボタンを離された時に引数のfunctionを実行します。引数にfunctionを設定しない場合は、要素に設定(バインド)されたfunctionを実行します。

ver1.4.3からは引数にobjectオブジェクトを設定することで、実行するfunctionにデータを渡すことができます(データはイベントオブジェクトのdataプロパティ経由で渡されます)。

クリックと異なり、他の所でマウスボタンを押されてから要素上でマウスのボタンを離しても発生します
クリックとは要素上でマウスボタンを押され、要素上でマウスボタンを離したときに発生するイベントです。

解説

マウスボタンを離した時の処理を設定

サンプル(mouseup/01.html)を開いてbody内にdiv要素が1つあることを確認してください。jQueryは以下の様に記述され、mouseupメソッドの引数にfunctionの「upFunc」が設定されています。

$(function () {
	$("button").mouseup(upFunc);
});

mouseupメソッドの引数に設定するFunctionは以下の様な構文になっています。まず引数(イベントオブジェクト)を受け取ります。そしてマウスボタンを離したら実行したい処理を{}の中に書きます、何かをreturnする必要はありません。イベントオブジェクトは別項にまとめてあるので、そちらを確認してください。

mouseupに設定するFunctionの構文
function 任意の名前(イベントオブジェクト){
 マウスボタンを離したときに実行したい処理
}

サンプルmouseup/01.htmlで利用したupFuncは以下の様になっており、アラートで「mouseup」と表示するだけです。このサンプルでは引数(イベントオブジェクト)は利用していません。

function upFunc(eo){
	alert("mouseup");
}

結果として、div要素の上でマウスボタンを離すとアラートで「mouseup」と表示されます。
イベントのfunction設定は、無名関数を利用することが多いです。→サンプル(mouseup/01b.html

$("button").mouseup(function(){
	alert("mouseup");
})

他の要素に設定されたマウスアップ時の処理を実行する

mouseupメソッドは引数を設定しないと、指定した要素に設定されたマウスアップ時の処理を実行します。
サンプル(mouseup/02.html)を開いてbody内にbutton要素とdiv要素があることを確認してください。

続いてjQueryを確認してください。div要素に設定されたマウスアップ時の処理はmouseup/01b.htmlと同じですが、以下の処理が追加されています。この処理によってbuttonをクリックするとdiv要素に設定されたマウスアップ時の処理が実行されます。

$("button").click(function(){
	$("div").mouseup();
})

結果として、buttonを「クリック」するとdiv要素上で「マウスボタンを離した」のと同じようにアラートで「mouseup」と表示されます。

objectオブジェクトをfunctionに渡す

第1引数にobjectオブジェクトを設定することで、実行するfunctionにデータを渡すことができます。データはイベントオブジェクトのdataプロパティを介して渡されます。サンプル(mouseup/03.html)を開いてbody内の構成はmouseup/01.htmlと同じ事を確認してください。

jQueryは以下の様に記述され、mouseupメソッドの第1引数にtestプロパティが10の値を持ったobjectオブジェクトが設定されています。このデータはイベントオブジェクト(eo)を通してfunctionに渡され、dataプロパティの値として取得できます。

$("div").mouseup({test:10},function(eo){
	alert(eo.data.test);
})

結果として、div要素上でマウスボタンを離すと第1引数で渡されたtestプロパティの値「10」がアラートで表示されます。

関連項目

マウスボタンを押した時の処理を設定したい場合はmousedownメソッドを利用します。