javascript - 无法使用clearInterval

标签 javascript setinterval clearinterval

尝试创建一个显示当前时间的页面,该页面将每 x 秒刷新一次 - x 是用户输入 我使用 setInterval 和clearInterval 但看起来clearInterval 根本没有任何效果:( 这是代码:

 <script>
      let changeTime = () => {
        let secs = document.getElementById("sec").value * 1000;
        clearInterval(timer);
        let timer = setInterval(() => {
          let d = new Date();
          document.getElementById("example").innerHTML = d.toLocaleString();
          console.log(secs);
        }, secs);
      };

      function clear() {
        clearInterval(timer);
      }

      //both functions are called with an onChange event

谢谢!

最佳答案

您的timer变量是您的changeTime()函数的本地变量。在函数外部声明它。

  let timer;
  let changeTime = () => {
    let secs = document.getElementById("sec").value * 1000;
    clearInterval(timer);
    timer = setInterval(() => {
      let d = new Date();
      document.getElementById("example").innerHTML = d.toLocaleString();
      console.log(secs);
    }, secs);
  };

当变量是函数的局部变量时,它仅在函数调用发生期间存在,并且每次调用时都会创建该变量的新实例。通过在函数外部声明它,变量及其值将持续存在。

关于javascript - 无法使用clearInterval,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70623051/

相关文章:

javascript - 谷歌应用程序脚本 : How to find a listItem object in a google document and insert a item to it?

javascript - 如何获取更改后的输入的属性值?

javascript - JavaScript setInterval 相关问题

javascript - 实例化一个类,然后将其传递给 setInterval

javascript - 我需要从不同的函数调用 ClearInterval

javascript - 重复使用clearInterval和clearTimeout不起作用

javascript - 如何在同一个函数中使用 setInterval() 和 clearInterval()

javascript - 在动态添加的 div 上初始化 owl carousel

javascript - 在 html 和 js 中设置变量和值

javascript - 计时器只能通过空赋值而不是通过clearTimeout()来销毁