Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript倒计时计时器未启动_Javascript - Fatal编程技术网

JavaScript倒计时计时器未启动

JavaScript倒计时计时器未启动,javascript,Javascript,我尝试在我的页面上使用这个JavaScript倒计时,但计时器无法启动。 我做错了什么 var CountdownID = null; var start_msecond = 9; var start_sec = 120; window.onload = countDown(start_msecond, start_sec, "timerID"); function countDown(pmsecond, psecond, timerID) { var msecond = ((pmsecon

我尝试在我的页面上使用这个JavaScript倒计时,但计时器无法启动。 我做错了什么

var CountdownID = null;
var start_msecond = 9;
var start_sec = 120;

window.onload = countDown(start_msecond, start_sec, "timerID");

function countDown(pmsecond, psecond, timerID) {
var msecond = ((pmsecond < 1) ? "" : "") + pmsecond;
var second = ((psecond < 9) ? "0": "") + psecond;

document.getElementById(timerID).innerHTML = second + "." + msecond;

if (pmsecond == 0 && (psecond-1) < 0) { //Recurse timer
    clearTimeout(CountdownID);

    var command = "countDown("+start_msecond+", "+start_sec+", '"+timerID+"')";
    CountdownID = window.setTimeout(command, 100);

    alert("Time is Up! Enter your PIN now to subscribe!");
}
else { //Decrease time by one second
    --pmsecond;
    if (pmsecond == 0) {
        pmsecond=start_msecond;
           --psecond;
    }
    if (psecond == 0) {
        psecond=start_sec;
    }
    var command = "countDown("+pmsecond+", "+psecond+", '"+timerID+"')";
    CountdownID = window.setTimeout(command, 100);
}
}

<span style="color:red" name="timerID" id="timerID">91.6</span>
var CountdownID=null;
var start_msecond=9;
var启动时间=120秒;
window.onload=倒计时(开始秒,开始秒,“timerID”);
函数倒计时(pmsecond、pssecond、timerID){
var msecond=((pmsecond<1)?“”:“”)+pmsecond;
var second=((每秒<9)?“0”:“)+pssecond;
document.getElementById(timerID).innerHTML=second+“+msecond;
如果(pmsecond==0&&(pssecond-1)<0{//递归计时器
clearTimeout(倒计时ID);
var command=“倒计时(“+start_msecond+”、“+start_sec+”、“+timerID+”)”;
CountdownID=window.setTimeout(命令,100);
警报(“时间到了!现在输入您的PIN以订阅!”);
}
否则{//将时间缩短一秒
--pms;
如果(pmsecond==0){
pmsecond=开始秒;
--秒;
}
如果(秒==0){
psecond=开始秒;
}
var command=“倒计时(“+pmsecond+”、“+pssecond+”、“+timerID+”)”;
CountdownID=window.setTimeout(命令,100);
}
}
91.6

以下是您首先需要做的事情

window.onload = countDown(start_msecond, start_sec, "timerID");
应该是

window.onload = function () {
   countDown(start_msecond, start_sec, "timerID");
}
此外,还应避免在setTimeout函数中使用字符串:

CountdownID = window.setTimeout(function () {
   countDown(pmsecond,psecond,"timerID");
}, 100);

请参见此处

计时器正在工作。但是为什么它会重新启动,当它达到0时不显示警报框?@tylereff:switch
--pmsecond
pmsecond--我认为这可能是因为您在发出警报之前设置了一个新计时器。尝试删除行
CountdownID=window.setTimeout(命令,100)在您的第一个条件下,或将警报移到它之前