jQuery中的clearQueue有什么作用?

时间:2010-10-05 13:45:54

标签: jquery jquery-plugins

我正在阅读AutoScroll插件的代码@ http://blog.insicdesigns.com/2010/08/an-ultra-lightweight-autoscroll-to-top-jquery-plugin/

你会找到

var t = jq('<div class="'+ops.styleClass+'"></div>')

然后经过一些代码

t.clearQueue().fadeOut(ops.hideDuration || 200);  

clearQueue在这做什么?或者只是clearQueuein jQuery做了什么?

4 个答案:

答案 0 :(得分:3)

  

描述:从队列中删除所有尚未运行的项目。

http://api.jquery.com/clearQueue/

该调用应与

完全相同
t.stop(true,true).fadeOut(ops.hideDuration || 200);

这里唯一的区别是clearQueue会从(函数)队列中删除所有函数,而.stop()只会影响fx methods

答案 1 :(得分:3)

它将取消尚未运行的所有排队项目(通常是动画)。

如果正在进行当前动画(例如),则不会受到影响。但是任何排队的项目都不会执行。

在此示例中,height动画将继续,但排队的.fadeOut()将不会发生。

示例: http://jsfiddle.net/sXnVj/

$('div')
    .animate({height: 500},1000)
    .fadeOut();

$('div').clearQueue();
​

或者采取项目已排队但从未出列的情况。除非您清除队列,否则任何后续排队的项目都将永远不会执行。

此处,.fadeOut()不会发生:

$('div').queue(function() {});

$('div').fadeOut(2000);

但在这里它会:

$('div').queue(function() {});

$('div').clearQueue().fadeOut(2000);

答案 2 :(得分:0)

它清除要执行的函数调用队列,即已调用但此时尚未执行的函数。查看此信息以获取更多信息:

http://api.jquery.com/clearQueue/

答案 3 :(得分:0)

它不是AutoScroll插件的一部分,他只是在jQuery API

中使用它