2011-04-05 10 views
1

に変更する変数、私は以下のようにindex.htmlをするためにリンクされたJavaScriptファイルがあります:いくつかの他のコンテンツと一緒にJavascriptを:ボタンのクリック

var speed = ...; 

を:

<script src='game.js' type='text/javascript'> 
</script> 

game.jsが含まれているとします。

HTMLページに3つのボタンがあり、クリックするとJavaScriptの変数speedが変更されます。クリックすると、リセットボタンがクリックされるまで3つすべてのボタンを無効にするか非表示にします。私はこれについてどのような考え方?

+0

申し訳ありませんが、みんな禁じられている。また、ちょうどあなたがHTML 5キャンバススネークタイプのゲームを作ることを知らせるために、ボタンは難しさのためにヘビのスピードを設定することです。 – Mark

+0

@マーク - 割り当てのためのものであれば、人々が完全な答えを提供しないように、「宿題」としてタグ付けする必要があります。それは不正行為だ。 – tvanfosson

+0

「持っている」必要があります。 –

答えて

0

各ボタンのclickイベントにアタッチするjavascriptファイル内に関数を作成します。

この関数は、必要な変数を変更します。

aButtonelement.addEventListener('click',functionToChangeVariable,false) 
0

最も簡単な方法として、jQueryを使用します。

$("#idofbutton").click(function() { 
    // change variables here 
}); 

それともイベントを登録できます。

document.getElementById("idofbutton").addEventListener('click', function() { 
    // change variables here 
}, false); 

Source

+0

後方xbrowser compatの場合、引数#3としてFALSEを追加する必要があります。 – Rudie

+0

Good catch。私は通常、HTML5互換のブラウザ用に開発するので、私は一般的にこれを気にしません。 – tjameson

0

は、あなたのJavascriptファイルに次のように含める:あなたのHTMLで

function DisableButtons() { 
    speed = 100; 
    document.getElementById("btn_1").disabled = true; 
    document.getElementById("btn_2").disabled = true; 
    document.getElementById("btn_3").disabled = true; 
} 

function EnableButtons() { 
    document.getElementById("btn_1").disabled = false; 
    document.getElementById("btn_2").disabled = false; 
    document.getElementById("btn_3").disabled = false; 
} 

、以下のonClickイベントを割り当てます:

<button onClick="DisableButtons();">Button 1</button> 
<button onClick="DisableButtons();">Button 2</button> 
<button onClick="DisableButtons();">Button 3</button>  
<button onClick="EnableButtons();">Reset</button> 
+0

onClickは最適なルートではありません。イベントリスナーを代わりに使用する必要があります。 – tjameson

+0

@tjameson:私は同意しますが、それはおそらく宿題に割り当てられます。 –

+0

ああ、私はそれが宿題であるということについては忘れてしまった。それでも、それは良い習慣です。 – tjameson

0

このようなものはありますか? http://jsfiddle.net/qMRmn/

は基本的には、speedはグローバル変数であり、クラスset-speedクラスでボタンをクリックすると、新しい値に速度を設定し、set-speedすべてのボタンが無効になります。 resetボタンをクリックすると、再度有効になります。

コードはかなり自明です。純粋なHTML/JavaScriptを使用して

1

は、ここで私はどうなるのかです:ここでは

<form name="form1"> 
    <span id="buttons"> 
    <input type="button" name="button1" value="Speed1"/> 
    <input type="button" name="button2" value="Speed2"/> 
    <input type="button" name="button3" value="Speed3"/> 
    </span> 
    <input name="reset" type="reset"/> 
</form> 
<script type="text/javascript"> 
    var speed, buttonsDiv=document.getElementById("buttons"); 
    for (var i=1; i<=3; i++) { 
    var button = document.form1["button" + i]; 
    button.onclick = function() { 
     speed = this.value; 
     alert("OK: speed=" + speed); 
     buttonsDiv.style.display = 'none'; 
    }; 
    } 
    document.form1.reset.onclick = function() { 
    speed = null; 
    alert("Speed reset!"); 
    buttonsDiv.style.display = 'inline'; 
    return true; 
    }; 
</script> 

は実施例である:私はその大学割り当てjQueryのためとしてのjQueryを使用しカント明記の必要がありますhttp://jsfiddle.net/maerics/TnTuD/

+0

DOMがレンダリングされるまでお待ちください。 –

+0

@Tomalak:その重要な細部を忘れてしまったので、スクリプトタグの内容を 'window.onload = function(){...};にラップする必要があると思います。 – maerics

関連する問題