2017-12-18 4 views
1

candy boxのようにアイドル状態のゲームを作成しようとしています。ページの横に1秒ごとに1つずつ数字が表示されます。ただし、以下に示すコードは動作していないようです。誰も私にそれがなぜ機能していないのか教えてもらえますか?それを修正する方法とどこから情報を得たか前もって感謝します。段落にインクリメント変数を統合する方法

<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 &#163;<span id="money"></span>.</p> 
    </body> 
</html> 
+1

あなたはsetInterval' 'への呼び出しで' increment'を呼び出しているので、それが働いていません - - 編集:おそらく十分に明確ではなかった: 'setInterval'は関数の定義を期待していますが、その代わりに関数を実行しています。 – Felipe

+0

どの部分が機能していませんか?エラーメッセージが表示されますか?もしそうなら、それは何を言いますか? – freginold

+0

また、あなたのHTMLタグが間違っています – Felipe

答えて

4

は、次の2つの問題があります。

  1. DOMがレンダリングされる前にスクリプトが実行される時点で、moneyのIDを持つ要素がないので、あなたは、あなたのスクリプトを呼び出しています。
  2. setIntervalコールでは、かっこなしの関数名(increment)のみが必要です。括弧を含めると(increment()のように)、特定の瞬間に関数を呼び出すだけで、各間隔で呼び出されるように参照するのではありません。 (より詳細な情報については、the Microsoft page on setIntervalを参照してください。)

は、このコードを参照してください:

<h2><u>The best game of the century</u></h2> 
 
<p>you have &#163;<span id="money"></span>.</p> 
 

 
<script type="text/javascript"> 
 
    var i = 0; 
 

 
    function increment() { 
 
    i++; 
 
    document.getElementById('money').innerHTML = i; 
 
    } 
 

 
    setInterval(increment, 1000); 
 
</script>

+1

そしてなぜかっこは必要ありませんか? –

+0

@BramVanroyありがとう、私はその部分を忘れました。現在含まれています。 – freginold

+1

ありがとう、それは問題を解決するのに役立ちました – bilc

3

変更setInterval(increment(), 1000);setInterval(increment, 1000);

その理由は、それが実行される関数の参照を取るhttps://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setInterval 文書どおりに働いて..しかし、一度だけ実行されます。このような関数の増分()を呼び出し、戻りません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 &#163;<span id="money"></span>.</p>

+0

なぜこれが必要であるかを説明したいかもしれません。 –

+0

ありがとう、それは問題を解決するのに役立ちました – bilc

関連する問題