初心者がJavascriptを学習しています。私はいくつかの助けが必要です... 私はゲームを作ろうとしており、ユーザーは自分の時間を設定できます。setTimeoutのカスタムユーザー入力
私のコードは次のようである:
HTML:
<div class='wrapper'>
<form id='nameForm'>
<div class='form-uname'>
<lable id='nameLable' for='nameField'>Create a username:</lable>
<input id='nameField' type='text' maxlength='25'></input>
</div>
<div class='form-sub'>
<button id='subButton' type='button'>Print your name!</button>
</div>
</form>
<div>
はJavaScript:
function getUserName() {
var nameField = document.getElementById('nameField').value;
alert(nameField);
}
var subButton = document.getElementById('subButton');
subButton.addEventListener('click', getUserName, false);
警報値は正しいです!しかし、変数nameField
を1000
(最後の行を参照)の代わりに以下のコードに入れても、動作しません!
var Timer = window.setTimeout;
$shape.onclick = function(){
window.clearTimeout(Timer);
Timer = window.setTimeout(function(){
$gameOverp.innerHTML = "You run out of time :(<br /> GAME OVER!";
passedTime();
$gameOver.style.display = "block";
$shape.style.display = "none";
$gameInfop.innerHTML = "TRY AGAIN!";
$gameInfop.style.marginLeft = "280px";
}, 1000);
私は関数内nameField
を作ることを知っているが、私は私のファイルの先頭にそれを作る場合でも、それは動作しません。
x = 3000
を使用し、1000
の代わりにx
を入力すると、正常に動作します。
私はあなたに私の問題を理解していただきたいと思います。ご不明な点がございましたら、お返事ください。
ユーザー名にタイムアウトの長さを設定しようとしていますか? 'setTimeout'の2番目のパラメータは、ミリ秒数でなければなりません。文字列にすることはできません。また、別の関数で宣言された 'nameField'で書かれた方法は、うまく動作しません。私はあなたがそれを使用している場所にアクセス可能なスコープで宣言された 'nameField'を使って試してみる方法を編集することを提案します。 – cstricklan