获得回调后,JQuery继续链接

时间:2013-06-21 05:06:18

标签: jquery callback chaining

我正在开发一个运行一系列功能的jquery插件。这些功能将自动播放或在人为干预下运行。

是否可以做这样的事情?

例如:

$('selector').bgChange({name:'you',callback).bgmChange() //Wait for the callback before performing bgmChange.

我知道我可以做这样的事情......

$('selector').bgChange({name:'you', function(){
bgmChange();
});

但我们正在谈论排队的数百个(可能是数千个)功能。

有没有办法做到这一点?

现在我提出的解决方案是这样的。

var events = [
function() {$('#canvas').bgChange({img:'resources/bg/afternoon.png',fadeIn: true,autoplay:false, debug:"events1:"});},

function() {$('#canvas').bgChange({img:'resources/bg/nighttime.png',fadeIn: true,autoplay:false, debug:"events2:"});},
function() {$('#canvas').bgChange({img:'resources/bg/afternoon.png',fadeIn: true,autoplay:false, debug:"events3:"});},

function() {$('#canvas').bgChange({img:'resources/bg/afternoon.png',fadeIn: true,autoplay:false, debug:"events4:"});},
function() {$('#canvas').switchTo(events2);}
];

并使用

播放每个功能
$('#canvas').play(events); 

有没有其他优雅的方法来做到这一点?非常感谢你。

1 个答案:

答案 0 :(得分:0)

不,在回调执行后无法继续链接,如下所示

$('selector').bgChange({name:'you'},callback).bgmChange()

但是如果你想给出一个固定的延迟,你可以使用.delay()