jQuery API の jQuery.Callbacks( 'memory' ) で生成したコールバックオブジェクトは、add()メソッドでコールバック関数を追加すると、前の値を渡しながら、追加したコールバック関数を呼び出す。
記述方法
var callbacksObject = jQuery . Callbacks( 'memory' );
戻り値
- Callbacks Object
コールバックオブジェクト。
実装例(サンプル)
実装例(サンプル)の動作について
- 「fire」ボタンをクリックすると、ボタンの下に「(1)項目1(fire)」を追加する。
- 「add」ボタンをクリックすると、ボタンの下に「(2)項目1(add)」を追加する。
- 「fire」ボタンを再度クリックすると、ボタンの下に「(3)項目2(fire)」と「(4)項目2(add)」を追加する。
- 「add」ボタンをクリックすると、ボタンの下に「(5)項目2(add)」を追加する。
実装例(サンプル)のソースコード
JavaScript
<script type="text/javascript">
<!--
jQuery( function() {
var $callbacksObject = jQuery.Callbacks( 'memory' );
var $countA = 1;
function callbackFnA( value ) {
jQuery( '#sampleOutput' ).append( '(' + $countA++ + ')' + value + '(fire)<br />' );
}
function callbackFnB( value ) {
jQuery( '#sampleOutput' ).append( '(' + $countA++ + ')' + value + '(add)<br />' );
}
$callbacksObject.add( callbackFnA );
var $countB = 1;
jQuery( "#sampleButtonFire" ).on( "click", function() {
$callbacksObject.fire( '項目' + $countB++ );
} );
jQuery( "#sampleButtonAdd" ).on( "click", function() {
$callbacksObject.add( callbackFnB );
} );
} );
// -->
</script>
<!--
jQuery( function() {
var $callbacksObject = jQuery.Callbacks( 'memory' );
var $countA = 1;
function callbackFnA( value ) {
jQuery( '#sampleOutput' ).append( '(' + $countA++ + ')' + value + '(fire)<br />' );
}
function callbackFnB( value ) {
jQuery( '#sampleOutput' ).append( '(' + $countA++ + ')' + value + '(add)<br />' );
}
$callbacksObject.add( callbackFnA );
var $countB = 1;
jQuery( "#sampleButtonFire" ).on( "click", function() {
$callbacksObject.fire( '項目' + $countB++ );
} );
jQuery( "#sampleButtonAdd" ).on( "click", function() {
$callbacksObject.add( callbackFnB );
} );
} );
// -->
</script>
HTML
<button id="sampleButtonFire">fire</button>
<button id="sampleButtonAdd">add</button>
<div id="sampleOutput">
</div>
<button id="sampleButtonAdd">add</button>
<div id="sampleOutput">
</div>