生成回调列(Callbacks)
var callbacks = $.Callbacks();
回调执行顺序
回调保存在数组中,然后通过for循环遍历,所以列中的回调按照被添加的顺序依次执行,最后添加的一般最后执行。
// Fire the items on the list
var foo = function( value ) {
console.log( "foo:" + value );
};
// Add another function to the list
var bar = function( value ){
console.log( "bar:" + value );
};
var callbacks = $.Callbacks();
callbacks.add( foo );
callbacks.add( bar);
callbacks.fire("hello");
// output: foo: hello
// output: bar: hello
四个标记:once, memory, unique, stopOnFalse
- Once:列中的每一个回调最多执行一遍,执行完成之后,回调函数列被清空。
- Memory:记住前一次fire()的参数,新回调一旦被添加就立即使用上一次的参数执行一遍(之前添加的回调不执行)。
- Unique:同一个回调不能重复添加。
- stopOnFalse:如果某个回调如果返回false,那么后面的回调都不会再执行。
var callbacks = $.Callbacks("once memory");
使用 callbacks.disable() 禁用回调列表: