2013-06-21 34 views
0

我正在開發一個運行一系列函數的jquery插件。這些功能將被自動播放或在人工干預下運行。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); 

是否有任何其他優雅的方式來做到這一點每一個功能?非常感謝你。

回答

0

不,這是不可能繼續回調執行後的鏈接下面

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

給出但是,如果你想給一個固定的延時,那麼你可以使用.delay()

+0

非常感謝你的你的回覆。我會試一試。 –