實現起來很靈活,代碼如下:
<style>
.star span{
font-size: 2em;
cursor: pointer;
}
.star .red{
color: red;
}
</style>
<h3>示例1:</h3>
<div class="star exp1">
<span>★</span><span>★</span><span>★</span><span>★</span><span>★</span><span>★</span><span>★</span>
<i></i>
<input type="hidden" name="star" value="1">
</div>
<div class="star exp6">
<span>★</span><span>★</span><span>★</span><span>★</span><span>★</span><span>★</span><span>★</span>
<i></i>
<input type="hidden" name="star" value="3">
</div>
<div class="star exp4">
<span>★</span><span>★</span><span>★</span><span>★</span><span>★</span><span>★</span><span>★</span>
<i></i>
<input type="hidden" name="star" value="5">
</div>
<div class="star exp5">
<span>★</span><span>★</span><span>★</span><span>★</span><span>★</span><span>★</span><span>★</span>
<i></i>
<input type="hidden" name="star" value="7">
</div>
<h3>示例2:</h3>
<div class="star exp2">
<span>W</span><span>W</span><span>W</span><span>.</span><span>E</span><span>B</span><span>C</span><span>M</span><span>S</span><span>.</span><span>C</span><span>O</span><span>M</span>
<i></i>
<input type="hidden" name="star" value="3">
</div>
<h3>示例3:</h3>
<div class="star exp3">
<span>易</span><span>貝</span><span>内</span><span>容</span><span>管</span><span>理</span><span>系</span><span>統</span><span>,</span><span>基</span><span>於</span><span>T</span><span>P</span><span>5</span><span>開</span><span>發</span><span>!</span>
<i></i>
<input type="hidden" name="star" value="3">
</div>
<script>
$(function() {
function stars(selecter){
var stars = $(selecter + ' span');
var star_tips_dom = $(selecter + ' i');
var star_dom = $(selecter + '');
var star_input_dom = $(selecter + ' input');
stars.mouseover(function() {
var ind = $(this).index();
$.each(stars, function(index, val) {
if ($(this).index() <= ind) {
$(this).addClass('red');
}else{
$(this).removeClass('red');
}
});
star_tips_dom.html(ind + 1 + ' 分');
});
stars.bind('click', function(event) {
star_input_dom.val($(this).index()+1);
});
star_dom.mouseout(function() {
var ind = star_input_dom.val();
$.each(stars, function(index, val) {
if ($(this).index() < ind) {
$(this).addClass('red');
}else{
$(this).removeClass('red');
}
});
star_tips_dom.html(ind + ' 分');
});
// 初始化
stars.eq(Number(star_input_dom.val())-1).trigger('mouseout');
}
stars('.exp1');
stars('.exp2');
stars('.exp3');
stars('.exp4');
stars('.exp5');
stars('.exp6');
stars('.exp7');
});
</script>