2010-09-29 3 views
1

Его единственный мой второй день, используя это, поэтому мне жаль, если здесь очевидная ошибка. Я пытаюсь, чтобы три функции выполнялись один за другим в событии load, но третья функция обратного вызова отменяет вторую. Вам разрешено 3? Если нет, то вокруг.jquery несколько обратных вызовов, чтобы сохранить порядок анимации

$j(window).ready(function() {  
    $j("#content").animate({ 
     marginLeft: parseInt($j("#content").css('marginLeft'),10) == 0 ? 
     $j("#content").outerWidth() : 0 
    },function(){ 
     $j(".headerImg").slideToggle(900); 
     },function(){ 
     $j(".headerTitleImg").slideDown(100);} 
    ); 
}); 

Thank you.

ответ

0

Вы вызываете метод animate с двумя функциями обратного вызова: animate(properties, callback, callback). В документации указывается только одна функция обратного вызова, но возможно, что она позволяет больше. Hoever, если это произойдет, тогда второй вызов будет вызван, когда первый вернется, он не будет ждать анимации, которую первый начал.

Решение сделать второй функции обратного вызова для первых функций slideToggle вызов:

$j(window).ready(function() {  
    $j("#content").animate(
    { 
     marginLeft: parseInt($j("#content").css('marginLeft'),10) == 0 ? 
     $j("#content").outerWidth() : 0 
    }, 
    function(){ 
     $j(".headerImg").slideToggle(
     900, 
     function(){ 
      $j(".headerTitleImg").slideDown(100); 
     } 
    ); 
    } 
); 
}); 
+0

это то, что я хотел, спасибо ++ – slexAtrukov

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