28、队列

来源:互联网 发布:购物车用数据库 编辑:程序博客网 时间:2024/06/06 03:39
FIFO 先进先出的线性表结构。只允许在表的前面删除,只允许在表的后端插入新元素。

jQuery把队列看做是element对象的数据缓存工具。
队列中存储的是将要被执行的一连串的动作函数。

这对于一系列需要按次序执行的函数特别有用。比如animate动画、Ajax异步请求和交互以及timeout等需要一定时间的函数。

1、定义队列
queue([name],callback)

jQuery定义了queue()方法,该方法能够把函数加入队列,这里的队列通常是一个函数数组。
当在同一个元素上设计连续动画时,如多次执行animate()方法,jQuery会自动将其加入名为fx的函数队列。
但是,如果需要对于多个元素依次执行动画,就必须借助queue()方法手动设置队列。

作用:在匹配元素的队列最后添加一个函数,并调用该函数,并返回当前的jQuery对象,如果队列中后续还有函数,
将不会再执行,除非手动移除这个使用queue添加的队列函数。。
第一个参数name表示队列的名称,可以省略,默认fx。
第二个参数是callback表示添加到队列末尾的回调函数。

注:queue()方法是在队列末尾添加了一个函数,则在该行后面的动作都将被忽视。

2、获取队列
queue([name])

当为匹配的元素添加队列之后,对象就可以使用queue(name)方法获取对该队列的引用。
这里的队列其实就是一个函数数组,并能够自动连续执行(当不在队列时,可实现同时执行,没有先后顺序)。
参数name表示队列名称,一般默认为fx。

注:如果匹配的元素不此一个,则返回指向第一个匹配元素的队列。即返回第一个元素包含的函数数组。


3、替换队列

queue(name,new queue);

如果第二个参数是一个空数组[],则会清除原来的动画序列。

一个队列执行完毕之后,可以使用另一个队列进行替换。具体实现方法是在queue()方法的第二个参数中
传递一个队列名称,将匹配元素的队列使用新的一个队列来代替,即使用新的函数数组代替现在
已执行的函数数组。


注:在动画序列执行过程中,并不是立即进行替换,而是等到当前正在执行的动作完成之后,才停止正在执行
的现有序列,并继续执行第二个新的序列。

4、删除队列
dequeue([name])
删除指定队列中最顶部的函数,并执行这个队列函数。name默认fx。

0 0
原创粉丝点击