2016-10-10 16 views
0

私は変数speedをキーボードから制御しています。私は現在の値を常に表示したいと思います。
は、私が試した:varの現在の値をHTMLに表示

var user_speed= 1; //init 

<h3 style="float:left;" id="userspeed"></h3> 

document.getElementById("userspeed").innerHTML = user_speed.toFixed(2); 

しかし、私が取得することだけspeed = 1であり、それは決して変更されません。

ユーザーが速度を変更し、document.getElementById()...を再度実行するたびに発生する機能を作成せずに、表示された値を変更し続ける方法はありますか?

+0

'init value' ??? –

+1

あなたは変更した後に 'h3'に変数を実行して書き込む何か**が必要です。それが唯一の方法です。 – rorschach

+0

変数名 'speed'または' user_speed'を意味します。名前が異なることを確認してください。 –

答えて

2

なぜのような値を更新するsetIntervalを使用しない:

var speed = 1; //init 

setInterval(function(){ 
    document.getElementById("userspeed").innerHTML = user_speed.toFixed(2); 
}, 1000); 

これは値ごとに1秒(1000ミリ秒)を更新します。

+0

これはいい考えです。 私は10のバールとあなたが書いた間隔があると仮定すると、それはCPUを邪魔するものでしょうか? – arii

+0

すべての変数が同じタイマーのコードブロック内で更新されている場合、それは問題ではありません。しかし、個々のスレッドがトリガーされるので、各変数に異なる_setInterval_呼び出しを使用しないでください。 –

0

コードを一度しか呼び出していないため、初期値のみを取得しています。

あなたが言ったように、値を変更するには、値を更新するためにその関数への呼び出しを作成する必要があります。

0

私は周りに道がないと思います。関数とイベントを使用する必要があります。ユーザーがキーを入力した時点を知ることができないときに、どのように計算を開始するか、どのように知っているでしょうか?

See this question

UPDATE:あなたは多分のsetInterval/のsetTimeoutを知っているようは悪です!

このlinkをご覧になると、そのような機能を避けるべきではないことがわかります。簡体字:

...最初の引数は文字列です。実際には、タイマーの期限が切れたときにグローバル名前空間で評価されるJavaScriptを渡します。上記の証拠の悪を読んでから、戻ってきてください。 JavaScriptコードの文字列を渡す必要はありません。 ...

+0

おそらくinneHTMLがvarに束縛されていると思って、それだけでそれを行います – arii

+0

追加情報をありがとう! – arii

関連する問題