onload方法的body标记启动的。我知道这个部分起作用,因为我让它做一些正常工作的事情。发布于 2014-09-13 00:28:30
setInterval的第一个参数是函数。不是传递函数,而是调用函数并传递它返回的任何内容,因为函数名后面有()。
而且,您不会在倒计时字段的更新之间等待。Javascript是单线程的,直到脚本返回,页面才会更新。你需要这个:
function startAdPage(){
var curCounter = 10;
function startCountdown() {
document.getElementById("countdown").value = curCounter;
curCounter--;
if (curCounter == 0) {
clearInterval(countdownInterval);
}
}
setInterval(changeAd, 2000);
var countdownInterval = setInterval(startCountdown, 1000);
}发布于 2014-09-13 00:26:25
startCountdown中的循环一直运行到循环的末尾,因此值最终为0。另外,您应该在没有参数的情况下将匿名函数或未执行的函数传递给setInterval和clearInterval。当您在函数名的末尾添加()时,您将执行该函数。将<input type='text' class='countdown' />更改为<input type='text' id='countdown' />,然后尝试以下操作:
function countdown(begin, end, interval, outputElement){
var repeat = setInterval(function(){
if(outputElement.innerHTML){
outputElement.innerHTML = begin--;
}
else{
outputElement.value = begin--;
}
if(begin === end)clearInterval(repeat);
}, interval);
}
countdown(10, 0, 1000, document.getElementById('countdown'));https://stackoverflow.com/questions/25818619
复制相似问题