JavaScript中clearInterval()函数失效:随机数生成器无法停止
问题分析与解决方案
你的代码里定时器无法停止的原因很明确:count是timer函数内部的局部变量,每次执行timer函数时,count都会被重新赋值为0,执行count++后始终是1,永远触发不了count == 5的判断条件,自然不会执行clearInterval。
修复代码
把count变量移到函数外部,让它在多次timer调用之间保持状态:
var stop = setInterval(timer, 1000); var t = 0; var count = 0; // 移到外部,作为全局作用域变量 function timer() { var X = document.getElementById("timer"); var rnumber = Math.floor(Math.random() * 10); X.innerHTML = rnumber; count++; if (count == 5) { clearInterval(stop); } }
<body> <div id="timer">0</div> </body>
修复逻辑说明
- 将count放在timer函数外部后,每次调用timer时count会持续递增,不会被重置
- 当count累计到5时,触发
clearInterval(stop),定时器被清除,随机数生成停止
内容的提问来源于stack exchange,提问作者Somraj
相关产品推荐
相关产品推荐

