我需要在onClick
事件上调用一个函数。
var startTime;
var isStarted = false;
var duration;
var loopCount;
var showWarn01 = false;
var showWarn02 = false;
var btn;
//在变量
之上function start1() {
if (!isStarted) {
startTime = new Date().getTime();
isStarted = true;
}
如果它开始
if (isStarted) {
duration = 60 * document.getElementById('start').innerHTML;
loopCount = window.setInterval(function () {
var leftSeconds = duration - Math.round((new Date().getTime() - startTime) / 1000);
if (leftSeconds >= 0) {
var hour = padLeft(Math.floor(leftSeconds / 3600) + '');
leftSeconds -= hour * 3600;
var minute = padLeft(Math.floor(leftSeconds / 60) + '');
leftSeconds -= minute * 60;
var second = padLeft(leftSeconds + '');
document.getElementById('showTime').innerHTML = hour + ':' + minute + ':' + second;
} else {
window.clearInterval(loopCount);
confirmButtonDirect.jq.click();
}
}, 1000);
}
}
setInterval不重复,只有一次
为什么会这样?
答案 0 :(得分:0)
你的问题在于这一行:
duration = 60 * document.getElementById('start').innerHTML;
如果您在该行下方添加console.log(duration);
,则会看到持续时间为NaN
。由于NaN > <any number>
未评估为真,因此永远不会输入if
正文。
首先将它转换为整数可以解决问题:
duration = 60 * parseInt(document.getElementById('start').innerHTML);