【问题标题】:Restart Timer Using Javascript使用 Javascript 重新启动计时器
【发布时间】:2021-07-14 09:05:21
【问题描述】:

我尝试使用 JavaScript 为我的测验设置计时器。(setInterval) 但如果我提前完成测验并单击开始按钮增益,时间将在我停止测验时开始计时。再次单击开始按钮后如何重新开始时间? .

<script>
    var seconds = 40;
    if (localStorage.getItem("counter")) {
        if (localStorage.getItem("counter") <= 0) {
            var value = seconds;
            alert(value);
        } else {
            var value = localStorage.getItem("counter");
        }
    } else {
        var value = seconds;
    }
    document.getElementById("divCounter").innerHTML = value;

    var counter = function() {
        if (value <= 0) {
            localStorage.setItem("counter", seconds);
            value = seconds;
        } else {
            value = parseInt(value) - 1;
            localStorage.setItem("counter", value);
        }
        document.getElementById("divCounter").innerHTML = value;
    };

    var interval = setInterval(function() { counter(); }, 1000);
</script>

【问题讨论】:

    标签: javascript html timer setinterval examine


    【解决方案1】:

    根据您当前的代码,重置计数器所需的操作设置为 value=seconds 并删除 localStorage 中的当前值。 所以假设你的 HTML 中有一个这样的按钮:

    <button type"button" onclick="resetCounter()">Reset</button>
    

    您可以在代码中添加resetCounter() 函数:

    var resetCounter = () => {
      value = seconds;
      localStorage.removeItem("counter");
    };
    

    【讨论】:

    • 我尝试使用您的代码,但是当我单击重置按钮时,我无法转到包含我的问题和计时器的下一页(.php)。
    • 您没有在问题中提及或分享任何 php 代码,原则上我的代码中没有任何内容阻止您导航到新页面。因此,我建议您在有关您要完成的任务的问题中添加更多详细信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多