自动启动jQuery自定义队列
,自动启动jQuery自定义队列,jquery,queue,jquery-queue,Jquery,Queue,Jquery Queue,,如果正在排队的队列是fx,并且队列尚未进行,则调用dequeue。 默认队列足够智能,可以自动启动,这很好但是我如何为我的自定义队列复制相同的功能,在队列为空时自动启动? 我的问题是,我正在接收Pusher调用(到达页面的ajax调用),这些调用激活下面的代码,向#tickerlist添加新名称。问题是,要启动队列,我必须在队列外部添加.dequeue,这将强制tickerlistqueue启动队列中的下一个项目。当您同时接到几个推送呼叫时,这实际上会使队列变得无用——作业只是彼此重叠,因为这
如果正在排队的队列是fx,并且队列尚未进行,则调用dequeue。
默认队列足够智能,可以自动启动,这很好但是我如何为我的自定义队列复制相同的功能,在队列为空时自动启动?
我的问题是,我正在接收Pusher调用(到达页面的ajax调用),这些调用激活下面的代码,向#tickerlist
添加新名称。问题是,要启动队列,我必须在队列外部添加.dequeue
,这将强制tickerlistqueue
启动队列中的下一个项目。当您同时接到几个推送呼叫时,这实际上会使队列变得无用——作业只是彼此重叠,因为这正是我告诉它要做的
基本上,我需要的是仅在队列为空时运行.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
Duh;我的最后一段回答了我自己的问题 如果队列
长度
等于或小于1,则启动队列。否则,什么都不要做。它是1,而不是0,因为您是在对最新名称进行排队后调用它的
特别是我的例子:
if (tickerlist.queue('tickerlistqueue').length <= 1) {
tickerlist.dequeue('tickerlistqueue');
}
if(tickerlist.queue('tickerlist.queue').length