我正在尝试在动画完成后启动一个功能,但我无法使其正常工作。
这是我的代码:
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计时器在动画结束前开始,有什么想法吗?
答案 0 :(得分:1)
将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);
答案 1 :(得分:1)
这样的事情可能会起作用:
$('.begin-mrsuper').delay(500).animate({
"left": "4px"
}, "slow", function(){ handleTimer(); }).promise();