$.Callbacks() にコールバック関数を追加した後、もう一度削除したいと思います。
var callbacks = $.Callbacks(),
foo = function() { console.log('Hello world') };
callbacks.add(foo);
callbacks.fire(); // logs 'Hello world'
callbacks.remove(foo);
callbacks.fire(); // nothing to trigger, removed perfectly
それで、それはうまくいきますが、次のように無名関数を追加したいと思います:
callbacks.add(function(){ console.log('Hello anonymous world') });
callbacks.fire(); // logs 'Hello anonymous world'
問題ないように見えますが、関数を削除することはできません:
callbacks.remove(function(){ console.log('Hello anonymous world') });
callbacks.remove();
callbacks.fire(); // still logs 'Hello anonymous world'
これを克服する方法はありますか?