2010-12-01 26 views
0
<label class="default" for="checkbox1"><input id="checkbox1" name="checkbox1" type="checkbox" style="display:none" /> some text</label><br /> 
<label class="default" for="checkbox2"><input id="checkbox2" name="checkbox2" type="checkbox" style="display:none" /> some text</label><br /> 
<label class="default" for="checkbox3"><input id="checkbox3" name="checkbox3" type="checkbox" style="display:none" /> some text</label><br /> 

jQueryを使用して、現在クリックされているチェックボックスのラベルの背景色を変更する方法を教えてください。第二チェックボックスがチェックされている場合たとえば、それのスタイルを変更しなければならない「にチェック」で:jQueryで現在の要素の背景を変更する

<label class="checked" for="checkbox2"><input id="checkbox2" name="checkbox2" type="checkbox" style="display:none" /> some text</label><br /> 
+0

が、場合チェックボックスは次のように表示されます。どのように人々が最初にそれらをチェックするためにそれらをクリックしていますか? – Metagrapher

+0

ラベルのテキストをクリックすると、チェックボックスもチェックされます... –

+0

実際に私は、ラベル自体にクリックイベントを割り当てることができます。なぜなら、チェックボックスはフォームデータのためだけに存在するからです。 – Metagrapher

答えて

1

のjQueryのチェックボックスの選択は非常に親「ラベル」要素を取得し、「確認」するCSSクラスを切り替えるにはクリック機能を割り当てることを使用して、あります。これにより、クラスが追加され、チェックボックスの状態に応じてクラスが削除されます。代わりに、あなたは上記のやったことの

<label class="checked" for="checkbox2"><input id="checkbox2" name="checkbox2" type="checkbox" style="display:none" /> some text</label><br /> 

を:あなたがしなければ

$("input:checkbox").click(function() { $(this).parent("label").toggleClass("checked"); 

また、あなたはあなたのCSSクラス名を持つより多くの運を持っています。 ;)

1

をあなたはchangeイベントを処理し、this.checkedかどうかを確認した後、背景色を設定する必要があります。たとえば

$(':checkbox').change(function() { 
    $(this).css('background-color', this.checked ? 'red' : 'transparent'); 
}); 
0
$("input[@type='checkbox']").click(function(){ 
    $(this).toggleClass('checked'); 

}); 
0

あなたのHTMLは、より次のようになります。

jQueryのは次のようになります。私はこれは愚かな質問であると確信して

$("input[type=checkbox]").select(function() { 
    $(this).toggleClass("checked"); 
}); 
関連する問題