尝试创建一个显示当前时间的页面,该页面将每 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/