2013-10-14 2 views
4

Я хочу вызвать функцию после .animate функции обратного вызова. Для этого я использую метод .done, но он не работает. fiddle.done after .animate callback function

$(function(){ 
$('button').click(function(){ 
$('div').animate({width:'400px'},300,function(){alert(0)}) 
}).promise().done(function(){alert(1)}) 
}) 

ответ

8

Вы были вызовом done на кнопке элемента, а не на div который анимационного

$('button').click(function() { 
    $('div').animate({ 
     width: '400px' 
    }, 300, function() { 
     alert(0) 
    }).promise().done(function() { 
     alert(1) 
    }) 
}) 

Demo: Fiddle

2

Вам нужно поставить обещание на функцию animate. В течение минуты у вас есть это на .click:

$('button').click(function(){ 
    $('div').animate({width:'400px'},300,function(){alert(0)}) 
      .promise() 
      .done(function(){alert("1")}); 
})