jQuery API の jQuery.Callbacks( flags ) は、コールバックオブジェクトを生成するメソッド。
引数「flags」で複数のコールバック関数の処理を制御できる。
記述方法
var callbacksObject = jQuery . Callbacks( フラグ );
引数「フラグ」で複数のコールバック関数の処理を制御。
引数
- flags / フラグ
コールバックオブジェクトで管理している複数のコールバック関数の処理を制御できる。
-
下記の4つの値を指定できる。半角スペース区切りで複数の値を指定することもできる。
- once
一度だけ呼び出す。
サンプルは「jQuery . Callbacks( 'once' )」のページにて。
- memory
add()メソッドでコールバック関数を追加すると、前の値を渡しながら、追加したコールバック関数を呼び出す。
サンプルは「jQuery . Callbacks( 'memory' )」のページにて。
- unique
コールバック関数を重複させない。
サンプルは「jQuery . Callbacks( 'unique' )」のページにて。
- stopOnFalse
コールバック関数が「false」を返すと呼び出しを中断し、それ以降のコールバック関数を呼び出さない。
サンプルは「jQuery . Callbacks( 'stopOnFalse' )」のページにて。
省略することも可能。サンプルは「jQuery . Callbacks()」のページにて。
戻り値
- Callbacks Object
コールバックオブジェクト。
実装例(サンプル)
実装例(サンプル)の動作について
「ボタン」をクリックすると、ボタンの右横に「こんにちは」と表示する。
「jQuery . Callbacks()」のページのサンプルと違い、ボタンが一度しか機能しない点に注目。
実装例(サンプル)のソースコード
JavaScript
<script type="text/javascript">
<!--
jQuery( function() {
var $callbacksObject = jQuery.Callbacks( 'once' );
$callbacksObject.add( function( value ) {
jQuery( '#sampleOutput' ).text( value );
} );
var $count = 1;
jQuery( "#sampleButton" ).on( "click", function() {
if( $count == 1 ){
$callbacksObject.fire( 'こんにちは' );
$count = 2;
}else{
$callbacksObject.fire( '' );
$count = 1;
}
} );
} );
// -->
</script>
<!--
jQuery( function() {
var $callbacksObject = jQuery.Callbacks( 'once' );
$callbacksObject.add( function( value ) {
jQuery( '#sampleOutput' ).text( value );
} );
var $count = 1;
jQuery( "#sampleButton" ).on( "click", function() {
if( $count == 1 ){
$callbacksObject.fire( 'こんにちは' );
$count = 2;
}else{
$callbacksObject.fire( '' );
$count = 1;
}
} );
} );
// -->
</script>
HTML
<button id="sampleButton">ボタン</button>
<span id="sampleOutput"></span>
<span id="sampleOutput"></span>