この投稿を見ましたが、必要以上にプラグインを使いたくありませんでした。それで、私はこれを私が取り組んでいる小さなプロジェクトのために一緒に投げました。これを使用するためにブートストラップは必要ありません。
HTML
<div class="star-rating">
<span class="fa fa-star-o" data-rating="1"></span>
<span class="fa fa-star-o" data-rating="2"></span>
<span class="fa fa-star-o" data-rating="3"></span>
<span class="fa fa-star-o" data-rating="4"></span>
<span class="fa fa-star-o" data-rating="5"></span>
<input type="hidden" name="whatever" class="rating-value" value="3">
</div>
CSS
.star-rating {
line-height:32px;
font-size:1.25em;
cursor: pointer;
}
CoffeeScript
$star_rating = $('.star-rating .fa')
SetRatingStar = ->
$star_rating.each ->
if parseInt($star_rating.siblings('input.rating-value').val()) >= parseInt($(this).data('rating'))
$(this).removeClass('fa-star-o').addClass('fa-star')
else
$(this).removeClass('fa-star').addClass('fa-star-o')
$star_rating.on 'click', ->
$star_rating.siblings('input.rating-value').val $(this).data('rating')
SetRatingStar()
SetRatingStar()
Javascript:
var $star_rating = $('.star-rating .fa');
var SetRatingStar = function() {
return $star_rating.each(function() {
if (parseInt($star_rating.siblings('input.rating-value').val()) >= parseInt($(this).data('rating'))) {
return $(this).removeClass('fa-star-o').addClass('fa-star');
} else {
return $(this).removeClass('fa-star').addClass('fa-star-o');
}
});
};
$star_rating.on('click', function() {
$star_rating.siblings('input.rating-value').val($(this).data('rating'));
return SetRatingStar();
});
SetRatingStar();