我正在尝试创建一个简单的3-2-1计数器。我想显示3,2和1,并在倒计时结束时运行一个功能。我尝试了几件事无济于事:
$("#count_num").delay(1000).queue(function() {
$(this).html("2")
});
$("#count_num").delay(1000).queue(function() {
$(this).html("1")
});
和
$("#count_num").delay(1000).queue(function() {
$(this).html("2").delay(1000).queue(function() {
$(this).html("1")
});
});
在这些情况下,它确实达到2但从未到1.我还安装了doTimeout插件(http://benalman.com/projects/jquery-dotimeout-plugin/)并尝试了这个:
$.doTimeout( 1000, function(){
$("#count_num").html("2");
});
$.doTimeout( 1000, function(){
$("#count_num").html("1");
});
和
var count=3;
$.doTimeout( 1000, function(){
if ( count==1 ) {
// do something finally
return false;
}
$("#count_num").html(count);
count--;
return true;
});
我在做错了什么?感谢。
答案 0 :(得分:8)
function endCountdown() {
// logic to finish the countdown here
}
function handleTimer() {
if(count === 0) {
clearInterval(timer);
endCountdown();
} else {
$('#count_num').html(count);
count--;
}
}
var count = 3;
var timer = setInterval(function() { handleTimer(count); }, 1000);
不使用jQuery,但应该可以正常工作。
答案 1 :(得分:3)
var timer = setInterval(function(){
$("#count_num").html(function(i,html){
if(parseInt(html)>0)
{
return parseInt(html)-1;
}
else
{
clearTimeout(timer);
return "KO!!";
}
});
},1000);
答案 2 :(得分:2)
我制作了一个小jquery插件,完全符合您的要求:
答案 3 :(得分:1)
您不需要插件。使用JavaScript,您可以:
var count = 4;
function anim() {
if (count > 0) {
console.log(count);
count--;
setTimeout(anim, 700);
}
else {
alert('end of counting')
}
}
anim();
这将从4开始倒计时,然后在计数达到0时执行一个函数。