javascript - 您如何摆脱警报框并恢复行动流程?- Javascript
问题描述
所以我正在编写一个简单的 javascript 计时器,并在 30 秒时提示用户是否要重置倒计时或让它继续。我可以重置计时器,但是当用户单击警报框上的取消时我卡住了。
我尝试让计时器在当前时间恢复,但这无济于事,因为警报框不断重新出现
我对 javascript 还是很陌生,所以我想继续使用 vanilla js,直到我对基础有了更深入的了解!
任何指导将不胜感激!
这是我的代码:
function startTimer(duration, display) {
var timer = duration, minutes, seconds;
setInterval(function () {
minutes = parseInt(timer / 60, 10);
seconds = parseInt(timer % 60, 10);
minutes = minutes < 10 ? "0" + minutes : minutes;
seconds = seconds < 10 ? "0" + seconds : seconds;
display.textContent = minutes + ":" + seconds;
if(timer<30){
var message = confirm("Would you like to extend timer?");
if (message == true) {
timer = 60 * 1;
}
else{
timer = timer;
}
}
if (--timer < 0) {
timer = duration;
}
}, 1000);
}
function resetTimer() {
timer = 60 * 1;
}
window.onload = function () {
var fiveMinutes = 60 * 1,
display = document.querySelector('#time');
startTimer(fiveMinutes, display);
};
解决方案
只需放置if(timer==30)
而不是if(timer<30)
恰好在 30 个单位的时间内,您会在该实例上被要求确认一次(但是请注意,在确认完成之前,提示将每秒不断弹出)。如果你延长它,它会再次等到你的计时器下降到 30 单位,否则它会简单地下降到 0 并爆发。
推荐阅读
- java - 卡在Java中的最短路径
- php - PHP 编码帮助创建一个数组,该数组引用其他数组和数组中的项目总和
- jmeter - Jmeter - 通过单个调用使用 GET/POST - While 循环
- python - 将数据框列表转换为具有自定义键的字典列表
- python-3.x - 使用 Airflow _DataProcJob 钩子禁用在 dataproc 中附加作业
- gremlin - 连接 firstName 和 lastName 并使用 Gremlin 查询对这 2 个属性进行搜索
- python - 终端和高级中的 VSCode 运行选择
- python - 我们可以在 scipy.optimize.curvefit 中使用约束以及如何使用最小化?
- flutter - Gradle任务assembleDebug失败,退出代码为1
- scala - 遍历 spark 数据帧并将每一行值存储在另一个类的变量中