2014-12-01 2 views
0

У меня есть сценарий jQuery, который использует .animate для изменения цвета фона. Я использовал полное событие для предупреждения («привет»), так что, как только анимация завершится, он сделает предупреждение. Но кажется, что он оповещает, как только он обрабатывает анимацию. Не так, как это на самом деле закончено. Есть ли способ запустить функцию сразу после окончания анимации?jQuery Полное событие

+1

Да, есть способ. Используйте функцию обратного вызова. Он уже находится в документах: http://api.jquery.com/animate/ – Terry

+0

Я использую функцию обратного вызова, но он уведомляет об этом, как только он запускается. Вместо того, чтобы анимация была выполнена сама по себе, я хочу нечто подобное тому, которое вызывает, когда оно на самом деле заканчивается. –

+1

** Покажите свой код. ** Кажется, вы неправильно используете обратный вызов. Невозможно помочь, если вы не публикуете какой-либо код. – Terry

ответ

1

Используйте полную функцию (обратный вызов) следующим образом:

$(function(){ 
    $("#test").animate({ 
     opacity: 0.25, 
    }, 1500, function() { 
     alert('hello'); // callback 
    }); 
}); 

Fiddle

Я не могу понять, почему он не будет работать (или почему он будет стрелять сразу), если только возможно вашей продолжительности анимации очень короткий? Измените свой вопрос и добавить код

docs Из:

If supplied, the complete callback function is fired once the animation is complete. 
0

попробовать это. DEMO at JSBin

alert('start animation'); 
$('.demoDiv').animate({ 
    width: '90%', 
    }, 
    { duration: 5000, 
    complete: function(){ 
     alert('end animation'); 
    } 
}); 
Смежные вопросы