0

我正在开发一个运行一系列功能的 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); 

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

4

1 回答 1

0

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

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

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

于 2013-06-21T05:09:22.043 回答