私は自分のアプリケーションに対して別の種類のレビューシステムを試しています。値が1から5のラジオボタンが5つあり、すべての値が色を表します。
ユーザーが映画「バットマン:ダークナイト」をレビューしようとすると、次のようになります。
ユーザーが値をクリックすると、背景色が変更されます。私はこれを制御するためにjQueryを使用しています。
問題は次のとおりです。ユーザーは1つの値のみを選択でき、その値のみが背景色を変更する必要があります。今すぐ変更すると、任意の値をクリックすると、その背景色が変更されます。
jQueryでそれを行うにはどうすればよいですか?ヒントやアイデアは大歓迎です!
これがjsfiddleの例です:http://jsfiddle.net/puWJZ/
HTML:
<label class="input-check ch1">
<input id="#rb1" type="radio" value="1" name="reviewbutton" /> Bad
</label>
<label class="input-check ch2">
<input id="#rb2" type="radio" value="2" name="reviewbutton" /> Acceptable
</label>
<label class="input-check ch3">
<input id="#rb3" type="radio" value="3" name="reviewbutton" /> Good
</label>
<label class="input-check ch4">
<input id="#rb4" type="radio" value="4" name="reviewbutton" /> Very good
</label>
<label class="input-check ch5">
<input id="#rb5" type="radio" value="5" name="reviewbutton" /> Excellent
</label>
<div class="box">POP UP!</div>
CSS:
.input-check {
display: block;
height:20px;
padding:10px;
width:90px;
color:#EEEEEE;
font-weight: 600;
text-align: center;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
background-color: #333333;
margin:10px;
cursor: pointer;
}
input {
display:none;
}
.ch1:hover{background-color: #ba0012; cursor: pointer;}
.ch2:hover{background-color: #ba0099; cursor: pointer;}
.ch3:hover{background-color: #00ba88; cursor: pointer;}
.ch4:hover{background-color: #0bbdf0; cursor: pointer;}
.ch5:hover{background-color: #f0b10b; cursor: pointer;}
jQuery:
$(document).ready(function(){
$('.box').hide();
/* Bad */
$('.ch1').click(function(){
$(this).css({'background-color' : '#ba0012'});
$('.box').show();
});
/* Acceptable */
$('.ch2').click(function(){
$(this).css({'background-color' : '#ba0099'});
$('.box').show();
});
/* Good */
$('.ch3').click(function(){
$(this).css({'background-color' : '#00ba88'});
$('.box').show();
});
/* Very good */
$('.ch4').click(function(){
$(this).css({'background-color' : '#0bbdf0'});
$('.box').show();
});
/* Excellent */
$('.ch5').click(function(){
$(this).css({'background-color' : '#f0b10b'});
$('.box').show();
});
});