2015-09-15 5 views
0

Я попытался дать функцию обратного вызова (FUNCTIONX) в .animate(), но она срабатывает немедленно - и не ждет конца анимации.Запуск функции после завершения анимации

nav.click(function() { 
    holder.stop(true, true); 
    var target = $(this).attr('class'); 

    if (target === 'right') { 
     var value = current.width(); 
     holder.animate({ 
      right: '+=' + value 
     }, slideSpeed, FUNCTIONX()); 
     current = current.next(); 
    } else { 
     var value = current.prev().width(); 
     holder.animate({ 
      right: '-=' + value 
     }, slideSpeed, FUNCTIONX()); 
     current = current.prev(); 
    } 
}); 

Также используется с .promise() (как показано ниже) с таким же эффектом.

 var value = current.width(); 
     holder.animate({ 
      right: '+=' + value 
     }, slideSpeed); 
     current = current.next(); 
     nav.promise().done(function() { 
      alert('dupa'); 
     }); 

Как запустить функцию после завершения этой анимации после завершения эффекта слайда?

+0

Вместо этого:.. 'Nav.promise() сделано (функция ...' 'сделать это holder.promise() сделано (функция ... ' – Michelangelo

ответ

1

FUNCTIONX вызывается сразу здесь. Попробуйте удалить ().

От:

holder.animate({ 
    right: '+=' + value 
}, slideSpeed, FUNCTIONX()); 

To:

holder.animate({ 
    right: '+=' + value 
}, slideSpeed, FUNCTIONX); 
Смежные вопросы