我想做一个闲置的游戏,而不是像 candy box。我会在页面的一侧有一个数字,每秒上升一个。但是,下面显示的代码似乎不起作用。谁能告诉我它为什么不起作用;如何解决它以及从哪里获取信息。先感谢您。
<script type="text/javascript">
var i = 0;
function increment(){
i++;
document.getElementById('money').innerHTML = i;
}
setInterval(increment(), 1000);
</script>
<h2><u>The best game of the century</u></h2>
<p>you have £<span id="money"></span>.</p>
</body>
</html>
你有两个问题:
money
的元素。setInterval
调用中,你只需要没有括号的函数名(increment
)。包括括号(如increment()
)仅在该特定时刻调用函数,而不是在每个间隔调用它来调用它。 (有关更多详细信息,请参阅the Microsoft page on setInterval
。)看到这段代码:
<h2><u>The best game of the century</u></h2>
<p>you have £<span id="money"></span>.</p>
<script type="text/javascript">
var i = 0;
function increment() {
i++;
document.getElementById('money').innerHTML = i;
}
setInterval(increment, 1000);
</script>
将setInterval(increment(), 1000);
改为setInterval(increment, 1000);
它没有工作,因为根据文件https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setInterval它需要一个函数引用来执行..但是像这样调用函数increment()只会执行一次,并且将使用该函数的返回值,该函数将为null并且不打算希望这样清除它
var i = 0;
function increment(){
//console.log(i);
i++;
document.getElementById('money').innerHTML = i;
}
setInterval(increment, 1000);
<h2><u>The best game of the century</u></h2>
<p>you have £<span id="money"></span>.</p>