私のロジックはまっすぐにできません!私はdiv( 'bandPackageCheck'と呼ばれる)に4つのチェックボックスを持っています。クリックされたときにそれぞれ異なるコンテンツを表示する(greenBoxというdivで)。関連するチェックボックスがオンになっているときに内容を切り替える方法
1つのチェックボックスをクリックすると、それぞれの 'greenBox' divで 'slideToggle'にしたいが、他のものは何もしない(後でクリックしない限り)。その後、ユーザーが別のものをクリックした場合は、以前にクリックされたものを開いたままにしておきたい(ユーザーがクリックして閉じない限り)。
私は4つのチェックボックスIDを与えましたが、それぞれに異なるコードを使用したくありませんでした。これを効率的に行うにはどうすればよいですか?
HTML:
<div class="bandPackageCheck">
<input type="checkbox" id="checkbox1">
<label for="trioCheckBox"><span>Checkbox 1</span></label>
</div>
<div class="greenBox" id="content1">
<div class="bandPackageCheck">
<input type="checkbox" id="checkbox2">
<label for="checkbox2"><span>Checkbox 2</span></label>
</div>
<div class="greenBox" id="content2">
<div class="bandPackageCheck">
<input type="checkbox" id="checkbox3">
<label for="checkbox3"><span>Checkbox 3</span></label>
</div>
<div class="greenBox" id="content3">
<div class="bandPackageCheck">
<input type="checkbox" id="checkbox4">
<label for="checkbox4"><span>Checkbox 4</span></label>
</div>
<div class="greenBox" id="content4">
CSS:
input[type=checkbox]{
display:none;
}
input[type=checkbox] + label:before{
font-family: FontAwesome;
display: inline-block;
content: "\f196";
letter-spacing: 10px;
color: deepskyblue;
cursor: pointer;
}
input[type=checkbox]:checked + label:before{
font-family: FontAwesome;
display: inline-block;
content: "\f146";
letter-spacing: 10px;
color: deepskyblue;
}
jQueryの:あなたが提供できるすべてのアドバイスに
var checkbox = $(".bandPackageCheck");
var greenBox = $(".greenBox");
$(checkbox).on('change', function(){
if (this.checked){
$(greenBox).slideToggle(200);
$(greenBox).not(this).hide();
} else {
$(greenBox).slideToggle(200);
}
});
ありがとう!私はjQueryの新機能も持っているので、最も高度な方法についてはわからないかもしれません。
これは素晴らしいです!それは完璧に働いた、ありがとう! – brandonstiles