2013-06-21 5 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

спасибо большое за ваш ответ. Я попробую. –

Смежные вопросы