我使用jquery.rateit.min.js
进行星级评分,我需要考虑以下2条条件:
以下是代码:
<input type="range" min="0" max="5" value="0" step="1" id="backing1">
<div class="rateit" id="rateitHover" data-rateit-backingfld="#backing1" data-rateit-step="1" >
<span class="tooltip" style="float:right; padding-left:10px;"></span>
</div>
<script type="text/javascript">
var tooltipvalues = ['Bad', 'Poor', 'Average', 'Good', 'Excellent'];
$("#rateitHover").bind('over', function (event, value) {
$('.tooltip').text(tooltipvalues[value - 1]);
});
$("#rateitHover").bind('reset', function () {
$('.tooltip').text('');
});
$("#rateitHover").bind('rated', function (event, value) {
$('.tooltip').text('R: ' + tooltipvalues[value - 1]);
});
</script>
答案 0 :(得分:2)
只需使用一个标志:
var hasBeenClicked = false;
$('.stars').on('mouseleave', function(e) {
if(hasBeenClicked) {
//let the stars value
} else {
//reset the stars
}
});
$('.stars .star').on('click', function() {
//set the rating
hasBeenClicked = true;
});
答案 1 :(得分:2)
这是你在找什么?我所做的就是将一个函数绑定到mouseleave事件。
$('#rateitHover').bind('mouseleave', function() {
var v = $('#rateitHover').rateit('value');
if (v == 0) {
$('.tooltip').html('');
} else {
$('.tooltip').html('R: ' + tooltipvalues[v - 1]);
}
});
这是一个JSFiddle,可以看到它的实际应用:http://jsfiddle.net/9xrkr/