2017-04-13 10 views
1

私はコンテナーを持ち、その中にラジオとチェックボックスの束があります。コンテナ内のチェックボックスやラジオボタンをクリックしたときにトリガされるように、コンテナのonclickハンドラを作成するにはどうすればよいですか?例の場合、クリックするとコンテナのcssクラスが変更される可能性があります。 「css_class1」がない場合は、このクラスが追加されます。子要素のいずれかがクリックされたときにトリガーされるonclickハンドラーを作成します。

私は純粋なjavascriptでそれをしたいと思います。

各チェックボックスとラジオに個別にonclickハンドラを作成する必要はありますか?

+0

http://stackoverflow.com/a/27622415/5393271特定の要素だけのイベントが必要な場合 – sTx

答えて

1

...コンテナにクリックハンドラを追加します。

これだけです。

これは、クリックハンドラの仕組みです。テスト値をevent.target.tagNameの機能の残りの部分を続行する前に:あなたが入力の一つがクリックされた場合のみ、何かをすることを望む場合

function handler(event) { 
 
    alert("Click on " + event.target.tagName + " for handler on " + event.currentTarget.tagName); 
 
} 
 

 
document.querySelector("div").addEventListener("click", handler)
<div> 
 
<input type="radio"> 
 
</div>

+0

変更イベントリスナーを追加することをお勧めします。 – dfsq

+0

@ dfsq - 多分。そうでないかもしれない。実際の目標が何であるかによって異なります。 OPはクリックハンドラを要求した。 – Quentin

0

私はクラスで要素を選択し、その上にクリックハンドラを作成するような簡単なことを試してみます。あなたが個別にクラスを適用することに興味がある場合は、いくつかの原因となることができ、私はクラスでそれをやって、IDによって各要素を取得して推薦するのに例えば

var childrenElements = document.getElementByClass('children'); 
childrenElements.addEventListener("click", addClass()); 


function addClass(){ 
    childrenElements.classname="css_class1"; 
} 
このコードはどうなるのか

は、単にすべての要素にクラスを適用で迷惑な問題。

関連する問題