2011-08-01 15 views

答えて

13

あなたはcheckbox、入力はすべての入力を選択します選択する$("input")を使用しないでください。代わりに、使用することができます。基本的にこれが何をするか

$('input:checkbox').change(function(){ 
    if($(this).is(":checked")) { 
     $('div.menuitem').addClass("menuitemshow"); 
    } else { 
     $('div.menuitem').removeClass("menuitemshow"); 
    } 
}); 

をチェックボックスが変更されたときfunction(){}内部にあるものは何でも実行しています。次に、あなただけのチェックボックスがチェックされているかどうかチェックするためのjQuery isを使用することができます。..

+0

うまくいかない、何も起こらない –

+0

あなたは使用しているHTMLを投稿できますか?それを見ずに問題を診断して診断するのは難しいです。 – betamax

+0

受け付けた回答がうまくいかない場合は、Dinesh Gunarathneから提供された解決策を試してください。 – HPWD

2

ことは、これを試してみてください:

$('input').change(function(){ 
    if ($(this).is(':checked')) { 
     $('div.menuitem').addClass("menuitemshow"); 
    } 
}); 

あなたは、チェックボックス自体の変更イベントをチェックし、かどうかを確認するための条件を実行して代わりに、属性に変更イベントを持つことができませんそれはチェックされています。

+0

私はremoveClassを使ってelseブロックを追加したい – heximal

+0

OPはその質問にそれを一度も指定していないので、準備中の問題を修正することができます。 –

+0

私は$( 'div.menuitem')を行いました。removeClass( "menuitem")addClass( "menuitemshow");クラスは削除されますが、ブラウザの更新時に、チェックボックスはまだチェックされていますが、クラスmenuitemが再度追加されます。 –

1

クラスをチェックボックスで切り替えることを前提にしています。

$('input').change(function(){ 
    var $this = $(this), $div = $('div.menuitem'); 
    if($this.is(':checked')) 
    { 
    $div.addClass('show'); 
    } 
    else 
    { 
    $div.removeClass('show'); 
    } 
}).change(); 

私はこれがなるように更新しましたが、私がこれまで読んだコメント与えソリューション@Rails初心者の問題を示唆しました。

最後の行にchange()が追加されていることに注意してください。これは、ページロード時にchangeを即座に実行させることです(を待つか、、が作成された後にを書き込んだと仮定しています)。

+0

これは正しくありません。彼は、div.menuitemの代わりにチェックボックスにクラスを追加したくないです。 –

+0

チェックボックスをオンにしたときにdivのクラスを変更したいです。 –

+0

@Rails beginner、あなたが望みます'div.menuitem'を' div.menuitemshow'ではなくdiv.menuitemshowにしますか?私は、 'div.menuitem'が' div.menuitem.show'に変わるように、 'show'クラスをトグルすることをお勧めします。 – zzzzBov

1
$('input:checkbox').change(function() { 
    if (this.checked) { 
     $('div.menuitem').addClass("menuitemshow"); 
    } 
}); 
3
// if checkbox checked then backgorund color will be gray 
// there should be a input type check box with a parent class label. 

$('input:checkbox').change(function(){ 
    if($(this).is(':checked')) 
     $(this).parent().addClass('selected'); 
    else 
     $(this).parent().removeClass('selected') 
}); 

// input check box should be like this 
<label class="" ><input type="checkbox" name="blabla" /></label> 

を、これは

//css 
.selected { 
background:gray 
} 
+0

これは正解とマークする必要があります。受け入れられた答えはすべてのdiv.menuitemにクラスを追加しますが、これはクリックされたアイテムの親にクラスを追加するだけです。 – HPWD

0

$('.vfb-checkbox input:checkbox').change(function(){ 
 
    if($(this).is(":checked")) { 
 
     $('.vfb-checkbox label').addClass("checked"); 
 
    } else { 
 
     $('.vfb-checkbox label').removeClass("checked"); 
 
    } 
 
});
.vfb-checkbox{ 
 
    width:180px; 
 
    height:130px; 
 
background:url('http://i304.photobucket.com/albums/nn181/Amam_Dewan/2932337756_1845773ed4_q_d_zpsea5idhnt.jpg'); 
 
} 
 
/* checkboxes */ 
 

 
.vfb-checkbox label { 
 
\t \t cursor: pointer; 
 
\t  display: block; 
 
\t  position: relative; 
 
    width:100%; 
 
    height:100%; 
 

 
\t } 
 

 
.vfb-checkbox label:hover{ 
 
    background:rgba(0,0,0,.7) url(http://i304.photobucket.com/albums/nn181/Amam_Dewan/selected_zpsvfoaira0.png)center center no-repeat; 
 
} 
 

 
\t 
 
.vfb-checkbox input[type=checkbox] { 
 
    \t display: none; 
 
\t } 
 
\t 
 
.checked{ 
 
    \t  background: rgba(0,0,0,.4) url('http://i304.photobucket.com/albums/nn181/Amam_Dewan/selected_zpsvfoaira0.png') center center no-repeat; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="vfb-checkbox"> 
 
    <label id="checkbox" for="check1"> 
 
    <input id="check1" type="checkbox" name="check" value="check1"> 
 
    </label> 
 
</div> 
 
<div class="vfb-checkbox"> 
 
    <label id="checkbox" for="check1"> 
 
    <input id="check1" type="checkbox" name="check" value="check1"> 
 
    </label> 
 
</div>
)(ラベルタグに「選択」クラスを追加します

チェックボックスでjqueryを使用しました。ある要素をクリックすると、他の要素が実行されます。この問題を解決するにはどうすればよいですか?