[color=red][b]jQuery.queue() 方法[/b][/color][url]http://www.w3school.com.cn/jquery/data_jquery_queue.asp[/url]
定义和用法
queue() 方法显示或操作在匹配元素上执行的函数队列。
注释:这是底层级的方法;使用 .queue() 更加方便。
语法

.queue(queueName)


参数 描述


queueName 可选。字符串值,包含序列的名称。默认是 fx, 标准的效果序列。


操作队列


queue() 方法操作在匹配元素上执行的函数队列。


语法


.queue(queueName,newQueue)


参数 描述


queueName 可选。字符串值,包含序列的名称。默认是 fx, 标准的效果序列。


详细说明


每个元素均可拥有一到多个由 jQuery 添加的函数队列。在大多数应用程序中,只使用一个队列(名为 fx)。队列运行在元素上异步地调用动作序列,而不会终止程序执行。典型例子时调用元素上的多个动画方法。例如:


$('#foo').slideUp().fadeIn();


当这条语句执行时,元素会立即开始其滑动动画,但是淡入过渡被置于 fx 队列,只有当滑动过渡完成后才会被调用。


.queue() 方法允许我们直接对这个函数队列进行操作。调用带有回调函数的 .queue() 方法特别有用;它允许我们在队列末端放置一个新函数。


这个特性与动画方法提供回调函数类似,但是无需在动画执行时设置回调函数。


$('#foo').slideUp();
$('#foo').queue(function() {
  alert('Animation complete.');
  $(this).dequeue();
});


等价于:


$('#foo').slideUp(function() {
  alert('Animation complete.');
});


[color=red]请注意,当通过 .queue() 添加函数时,我们应当确保最终调用了 .dequeue(),这样下一个排队的函数才能执行。[/color]


例子 1


对自定义函数进行队列操作:


$(document.body).click(function () {
  $("div").show("slow");
  $("div").animate({left:'+=200'},2000);
  $("div").queue(function () {
    $(this).addClass("newcolor");
    $(this).dequeue();
  });
  $("div").animate({left:'-=200'},500);
  $("div").queue(function () {
    $(this).removeClass("newcolor");
    $(this).dequeue();
  });
  $("div").slideUp();
});


亲自试一试 [url]http://www.w3school.com.cn/tiy/t.asp?f=jquery_data_queue_2[/url]


例子 2


设置队列数组来删除队列:


$("#start").click(function () {
  $("div").show("slow");
  $("div").animate({left:'+=200'},5000);
  $("div").queue(function () {
    $(this).addClass("newcolor");
    $(this).dequeue();
  });
  $("div").animate({left:'-=200'},1500);
  $("div").queue(function () {
    $(this).removeClass("newcolor");
    $(this).dequeue();
  });
  $("div").slideUp();
});

$("#stop").click(function () {
  $("div").queue("fx", []);
  $("div").stop();
});


亲自试一试[url]http://www.w3school.com.cn/tiy/t.asp?f=jquery_data_queue_3[/url]




[b][color=red]clearQueue() 方法[/color][/b] [url]http://www.w3school.com.cn/jquery/data_clearqueue.asp[/url]


定义和用法


clearQueue() 方法从序列中删除仍未运行的所有项目。


语法


.clearQueue(queueName)


参数 描述


queueName 可选。字符串值,包含序列的名称。默认是 fx, 标准的效果序列。


详细说明


当调用 .clearQueue() 方法时,序列中未被执行的所有函数都会被从序列中删除。如果不使用参数,则 .clearQueue() 从 fx (标准效果序列)中删除剩余的函数。在这种方式中,它类似于 .stop(true)。不过,.stop() 方法只用于动画,而 .clearQueue() 也可用于删除通过 .queue() 方法添加到通用 jQuery 序列的任何函数。


试一试:[url]http://www.w3school.com.cn/tiy/t.asp?f=jquery_data_queue_2[/url]