How*_*Gee 22 html javascript time
我试图每4秒调用一次我的函数,所以它会增加一个数字.出于某种原因,我不断收到错误.这是我的代码:
<html>
<head>
<title>Recycle Counter</title>
<script type="text/javascript">
function rand(from, to)
{
return Math.floor(Math.random() * (to - from + 1) + from); // Generates random number
}
var num = rand(10000, 100000);
function getNum() // Gets triggered by page load so innerHTML works
{
document.getElementById('counter').innerHTML = num + 7;
setTimeOut(getNum(), 4000);
}
</script>
</head>
<body onload="getNum()">
<div id="counter">
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
Rob*_*b W 42
在里面getNum,你直接调用getNum函数,导致堆栈耗尽.用getNum()函数引用替换函数调用getNum:
function getNum() // Gets triggered by page load so innerHTML works
{
num += 7; // Increase and assign variable
document.getElementById('counter').innerHTML = num;
setTimeout(getNum, 4000); // <-- The correct way
}
Run Code Online (Sandbox Code Playgroud)
链接到文档setTimeout.
Jar*_*Par 10
问题是你的调用setTimeout是调用getNum而不是调度它来执行.这导致无限递归和堆栈溢出.请尝试以下方法
setTimeout(getNum, 4000);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
66488 次 |
| 最近记录: |