jQuery队列(一)
jQuery的队列依赖缓存机制事件,它同时是animate的基础。
它不像事件机制、缓存机制、回调机制一样有自己的命名空间,由于比较简单,所以直接挂在到$和jQuery对象上。
它提供的基础方法有:
jQuery.extend({
queue: function( elem, type, data ) {
var queue;
// 如果存在elem,也就是至少有一个参数
if ( elem ) {
// 如果有第二个参数,使用第二个参数加上“queue”,否则使用“fx” + “queue”(动画队列的名称)
type = ( type || "fx" ) + "queue";
// 到jQuery内部使用的data_priv缓存对象中去取已type为key的值
queue = data_priv.get( elem, type );
// 如果存在第三个参数
if ( data ) {
// 如果elem还没有在cache中存储过名为type的数据,或者需要存储的数据时数组
if ( !queue || jQuery.isArray( data ) ) {
//
queue = data_priv.access( elem, type, jQuery.makeArray(data) );
// 否则,直接将data推入到队列中
} else {
queue.push( data );
}
}
// 返回队列
return queue || [];
}
}, // 将数据按照某种类型存储到elem上
dequeue: function( elem, type ) {}, // 从elem上删除某种类型的数据
_queueHooks: function( elem, type ) {} // 内部使用
});
jQuery.fn.extend({
queue: function( type, data ) {},
dequeue: function( type ) {},
delay: function( time, type ) {},
clearQueue: function( type ) {},
promise: function( type, obj ) {}
});