Я пытаюсь запустить функцию после завершения анимации, но не могу заставить ее работать.
Вот мой код:
var count = 3;
var timer = setInterval(function () {
handleTimer(count);
}, 1000);
function endCountdown() {
$('.begin-btn').html("GO!");
}
function handleTimer() {
if (count === 0) {
clearInterval(timer);
endCountdown();
} else {
$('.begin-btn').html(count);
count--;
}
}
$('.begin-mrsuper').delay(500).animate({
"left": "4px"
}, "slow").promise().done(function (handleTimer) {});
Я пробовал и:
$('.begin-mrsuper').delay(500).animate({"left":"4px"}, "slow").promise().done(function(){ handleTimer(); });
Но таймер 3,2,1, GO запускается до завершения анимации, есть идеи?
2 ответа
Оберните часть setInterval
в функцию, иначе она будет выполнена после того, как вы ее вызовете.
var count = 3, timer = null;
var foo = function() {
timer = setInterval(function () {
handleTimer(count);
}, 1000);
};
function endCountdown() {
$('.begin-btn').html("GO!");
}
function handleTimer() {
if (count === 0) {
clearInterval(timer);
endCountdown();
} else {
$('.begin-btn').html(count);
count--;
}
}
$('.begin-mrsuper').delay(500).animate({
"left": "4px"
}, "slow").promise().done(foo);
Что-то вроде этого может сработать:
$('.begin-mrsuper').delay(500).animate({
"left": "4px"
}, "slow", function(){ handleTimer(); }).promise();
Похожие вопросы
Связанные вопросы
Новые вопросы
jquery
jQuery — это библиотека JavaScript. Также рассмотрите возможность добавления тега JavaScript. jQuery — это популярная кросс-браузерная библиотека JavaScript, которая упрощает обход объектной модели документа (DOM), обработку событий, анимацию и взаимодействие AJAX, сводя к минимуму расхождения между браузерами. Вопрос с тегом jQuery должен быть связан с jQuery, поэтому jQuery должен использоваться рассматриваемым кодом, и в вопросе должны быть как минимум элементы, связанные с использованием jQuery.
.done()
resolve
stackoverflow.com/a/22496969/2801559 а>