As explained in another question,If 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
答案 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');
}