简介:
在data的基础上,在数据对象中添加一个一个属性,属性内容指定是数组队列。
代码大体框架:
jQuery.extend({
queue: function( elem, type, data ) {
},
dequeue: function( elem, type ) {
},
_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 ) {
}
});
代码解析:
jQuery.extend:
使用$调用的jQuery队列相关方法。
-
queue:
queue: function( elem, type, data ) {
var queue;
if ( elem ) {
type = ( type || "fx" ) + "queue";
queue = data_priv.get( elem, type );
if ( data ) {
if ( !queue || jQuery.isArray( data ) ) {
queue = data_priv.access( elem, type, jQuery.makeArray(data) );
} else {
queue.push( data );
}
}
return queue || [];
}
},
输入三个参数,挂载数据的元素elem;属性名type;数据data。
判断元素是否存在,只有存在的基础上,才能有挂载。存在的话进行队列的创建和数据的添加。
为type赋值,type = ( type || "fx" ) + "queue",以对应队列在数据对象中的属性名。(不存在的话,就是默认fxqueue)
在data_priv实例对象中,取出对应的队列数据。在判断data是否存在,不存在的话,直接返回队列数据,存在的话,再次判断,如果队列不存在,就是用data_priv.access创建一个,将数据添加进行,如果队列存在,但是data是数组,就让data的数据覆盖原来的队列,如果队列存在,data不是数组,就使用push将元素添加到队列中,