2012-01-03 4 views
1

私は以下のコードを使用しています。私の問題は、実際にラジオボタンをクリックしてコードを取得する必要があることです。JQuery既存のコードにクリックイベントを追加する

私は、ユーザーがDIVここ

現在のコードでクリックすると、それはまた、あるイベントをトリガしても、クリックハンドラを追加したいと思います:

<script> 

$(function(){ 
$("input[type=radio]").change(function() { 
$("input[type='radio']", $(this).parent().parent()).each(function() { 
$(this).parent() 
.toggleClass("class_selected", this.checked) 
.toggleClass("class_default", !this.checked); 

}); 
}); 
}); 

</script> 

UPDATE:ここではHTMLコードです:

<div class="def_app"> 
<span>Title Here</span> 
<input type="radio" name="radio1" /> 
</div> 
+1

Assumを使用しますあなたはdivを単なる親にすることはできません:$( "input [type = 'radio']")。parent()。change(..... – DaveHogan

+0

['.trigger'](http:// api.jquery.com/trigger/) – Konerak

+1

関連するHTMLコードも表示してください。 –

答えて

0

使用triggerは、イベントが発生したことをエミュレートし、そのイベントに関連付けられた対応するコードを呼び出します。

$(function(){ 
$("input[type=radio]").change(function() { 
$("input[type='radio']", $(this).parent().parent()).each(function() { 
$(this).parent() 
.toggleClass("class_selected", this.checked) 
.toggleClass("class_default", !this.checked); 

}); 
}); 

//call trigger on the input 
$("#yourdiv").click(function() {  
$("input[type=radio]").trigger('change'); 
} 

}); 
0

たぶんあなただけのラジオボタンをラップする代わりに<div><label>W3C specsを使用する必要があります。ユーザーは、ラベルのテキストをクリックすると、現在使用しているchangeイベントがトリガされます。この方法で...

私が正しくあなたの質問を理解している場合それは、意味的な方法です。..


更新はあなたのhtml

を見た後だけ

<label class="def_app"> 
<span>Title Here</span> 
<input type="radio" name="radio1" /> 
</label> 
関連する問題