非常に単純なフォームを作成しようとしています。私の目的は、それぞれが質問を含む2つのクリック可能なボタンを作成することです。クリックすると、DOMは各ボタンの下に答えを出力します。トリッキーな部分は、両方のボタンがただ1つの "addEventListener"で応答するようになっています。ここに私のコードは次のとおりです。2つのオブジェクトに対して1つのイベントリスナーを使用する
HTML:
<div id="wrapper">
<header>
<h1>Have you ever wondered...</h1>
</header>
<div>
<button id="myBtn">How many licks it takes to get to the center of a tootsie pop?</button>
<p id="first"></p>
<h3>Or what about...</h3>
<button id="myBtnTwo">How tall the Eiffel Tower is?</button>
<p id="second"></p>
</div>
</div>
JS:
document.getElementById("myBtn").addEventListener("click", function(){
document.getElementById("first").innerHTML= "Approximately 364 licks!";
});
document.getElementById("myBtnTwo").addEventListener("click", function(){
document.getElementById("second").innerHTML= "984 feet!";
});
は、事前にありがとうございます!
ハンドラはJSでの単一の要素を指摘することができます。ただし、要素に複数のハンドラを割り当てることはできます。それ以外の方法はありません。それぞれのボタンにはそれぞれ独自のハンドラが必要です。 – Korgrue
[これを参照してください(http://stackoverflow.com/questions/21700364/javascript-adding-click-event-listener-to-class)前の質問on stackoverflow。 – Tareq
ボタンごとに同じコードを実行したい場合は、両方のボタンのインラインonclickハンドラを使います: