循环内的jQuery延迟
我想在jQuery中创建一个计时器,我想像这样更改每秒的span值,但是延迟不起作用循环内的jQuery延迟,jquery,delay,Jquery,Delay,我想在jQuery中创建一个计时器,我想像这样更改每秒的span值,但是延迟不起作用 function startTimer(daysRemain,hoursRemain,minutesRemain,secondsRemain){ while(secondsRemain < 60){ secondsRemain++; $("span.secondRemain").delay(1000).text(sec
function startTimer(daysRemain,hoursRemain,minutesRemain,secondsRemain){
while(secondsRemain < 60){
secondsRemain++;
$("span.secondRemain").delay(1000).text(secondsRemain); //change value of seconds each one second
// I try this way too!
/* setTimeout(function(){
$("span.secondRemain").text(secondsRemain);
},1000);*/
}
功能启动计时器(daysRemain、hoursRemain、minutesRemain、secondsRemain){
而(秒数小于60){
secondsRemain++;
$($span.secondRemain”).delay(1000).text(secondsRemain);//每秒钟更改秒数
//我也试过这种方式!
/*setTimeout(函数(){
$(“span.secondRemain”).text(secondsRemain);
},1000);*/
}
延迟
仅适用于fx队列
标准计时器如下所示
var t = 0;
setInterval(function () {
$('div').text(t);
t += 1;
},1000);
.delay()
不会延迟您正在运行的javascript。它会进入动画队列,当队列到达该操作时,它会为延迟时间设置一个计时器,直到过了这么长的时间才继续执行队列中的下一个操作
因此,您不能在循环中使用它来进行javascript延迟。您需要像这样使用setTimeout()
function startTimer(daysRemain,hoursRemain,minutesRemain,secondsRemain) {
function nextTime() {
if (secondsRemain < 60){
secondsRemain++;
$("span.secondRemain").text(secondsRemain); //change value of seconds each one second
setTimeout(nextTime, 1000);
}
}
nextTime();
}
功能启动计时器(daysRemain、hoursRemain、minutesRemain、secondsRemain){
函数nextTime(){
如果(秒主频<60){
secondsRemain++;
$($span.secondremaine”).text(secondsRemain);//每秒钟更改秒数
设置超时(下一个时间,1000);
}
}
nextTime();
}
您是否尝试过:
setInterval(function(){
$("span.secondRemain").text(secondsRemain);
},1000);
嗯,你是对的,但是我也尝试了setTimeOut方法,但也不起作用。
setTimeOut
只会调用一次。你可以在初始setTimeOut
内再次调用setTimeOut
,或者使用setInterval
查看我的编辑以了解基本计时器示例。