jQuery入門

トップ > jQuery > Callbacks Object

Callbacks Object

◆ $.Callbacks([flags]) (1.7)

コールバックオブジェクトを生成します。コールバックオブジェクトには add() でコールバック関数を追加し、fire() で呼び出します。

function fn1(value) {
    alert("fn1:" + value);
}
function fn2(value) {
    alert("fn2:" + value);
}
var cb1 = $.Callbacks();
cb1.add(fn1);
cb1.add(fn2);
cb1.fire("Hello!");   // Call fn1("Hello!") and fn2("Hello!")

flags にはオプション文字列を空白で区切って指定します。once は一度のみ fire() することが可能です。memory は add() の際に最後に fire() した引数で add() したコールバックを呼び出します。unique は同じ関数を2回以上重複して add() できないよう制限します。stopOnFalse はコールバック関数が false を返した時点で残りのコールバック関数の呼び出しをスキップします。

var cb1 = $.Callbacks("unique stopOnFalse");
callbacks.add() (1.7)

コールバックオブジェクトにコールバック関数を追加します。

function fn1(value) {
    alert("fn1:" + value);
}
var cb1 = $.Callbacks();
cb1.add(fn1);
callbacks.remove() (1.XXX)

コールバックオブジェクトからコールバック関数を削除します。

var cb1 = $.Callbacks();
cb1.add(fn1);
cb1.add(fn2);
cb1.remove(fn2);
callbacks.empty() (1.XXX)

コールバックオブジェクトからすべてのコールバック関数を削除します。

var cb1 = $.Callbacks();
cb1.add(fn1);
cb1.add(fn2);
cb1.add(fn3);
cb1.empty();
callbacks.has() (1.7)

コールバックオブジェクト中にコールバック関数が追加されているか否かを true / false で返します。

var cb1 = $.Callbacks();
cb1.add(fn1);
cb1.add(fn2);
if (cb1.has(fn2)) { alert("Included!"); }
callbacks.fire(arguments) (1.7)

コールバックオブジェクトに登録されたコールバック関数を呼び出します。

function fn1(arg1, arg2) {
    alert("fn1:" + arg1 + ":" + arg2);
}
var cb1 = $.Callbacks();
cb1.add(fn1);
cb1.fire("Hello!", "Bye!");
callbacks.fireWith([context][, args]) (1.7)

コールバック関数内で this で参照される要素を context に指定してコールバック関数を呼び出します。

function fn1(arg1, arg2) {
    alert("fn1:" + $(this).attr("id") + ":" + arg1 + ":" + arg2);
}
var cb1 = $.Callbacks();
cb1.add(fn1);
cb1.fireWith($("#d1"), ["Hello!", "Bye!"]);
callbacks.fired() (1.7)

コールバックオブジェクトが一度でも fire()/fireWith() されたか否かを true / false で返します。

var cb1 = $.Callbacks();
cb1.add(fn1);
cb1.fire();
if (cb1.fired()) { alert("Called"); }
callbacks.disable() (1.7)

コールバックオブジェクトを無効状態にします。

var cb1 = $.Callbacks();
cb1.add(fn1);
cb1.fire();                  // 呼び出せます
cb1.disable();
cb1.fire();                  // 呼び出しが無視されます
callbacks.disabled() (1.7)

コールバックオブジェクトが無効状態にあるかを true / false で返します。

var cb1 = $.Callbacks();
cb1.add(fn1);
cb1.disable();
if (cb1.disabled()) { alert("Disabled!"); }
callbacks.lock() (1.XXX)

fire() / fireWith() による呼び出しを無効化します。ただし、memory が指定されていた場合は、add() による呼び出しは行われます。

function fn1(arg) { $("#log").append("fn1 : " + arg + "<br>"); }
function fn2(arg) { $("#log").append("fn2 : " + arg + "<br>"); }
var cb1 = $.Callbacks("memory");
cb1.add(fn1);
cb1.fire("Fire1");
cb1.lock();
cb1.fire("Fire2");    // 呼ばれない
cb1.add(fn2);         // fn2("Fire2") が呼ばれる
callbacks.locked() (1.XXX)

コールバックオブジェクトがロック状態にあるかを true / false で返します。

var cb1 = $.Callbacks();
cb1.add(fn1);
cb1.lock();
if (cb1.locked()) { alert("Locked!"); }

Copyright (C) 2013 杜甫々
初版:2013年2月3日
http://www.tohoho-web.com/js/jquery/callbacks.htm