自动启动jQuery自定义队列

时间:2014-04-25 13:05:57

标签: jquery queue jquery-queue

As explained in another questionIf the queue being queued is fx and the queue is not already in progress, dequeue is called.

默认队列非常智能,可以自动启动。 但是,我如何复制相同的功能,在队列为空时自动启动,为我的自定义队列?

我的问题是我正在接收Pusher调用(来自页面的ajax调用),激活下面的代码以向#tickerlist添加新名称。问题是,为了使队列启动,我必须在队列外添加.dequeue,然后强制tickerlistqueue启动队列中的下一个项目。如果您同时有多个Pusher呼叫进入,这有效地使队列变得无用 - 这些工作只是相互竞争,因为这正是我告诉它要做的事情。

基本上我需要的是在队列为空时只运行.dequeue行。否则,不要运行该行,队列将自行处理。

var tickerlist = $('#ticker-list');

tickerlist.queue('tickerlistqueue', function(next) {
    var name = 'John';
    $(name).hide().prependTo('#ticker-list').slideDown(700, function () {
        $('#ticker-list>div:last').remove();
        next();
    })
});

tickerlist.dequeue('tickerlistqueue'); //This is the only way to start the queue

1 个答案:

答案 0 :(得分:1)

咄;我的最后一段回答了我自己的问题。 jQuery shows you how to get the size of the queue in it's first example

如果队列length为1或更小,请启动队列。否则,不要做任何事情。它是1,而不是0,因为您在排队最新名称后调用它。

特别是我的例子:

if (tickerlist.queue('tickerlistqueue').length <= 1) {
    tickerlist.dequeue('tickerlistqueue');
}