星级评分,鼠标改变星

时间:2010-01-29 11:21:29

标签: jquery

function change_star_image(star_id){
 $("#star_rating_image_"+star_id).css('background', 'url(images/full-star.png)');
 $("#star_rating_image_"+star_id).mouseout(function(){
    $("#star_rating_image_"+star_id).css('background', 'url(images/empty-star.png)');
 });
 var endval = star_id;

for (var i=1;i<=endval;i++){
     $("#star_rating_image_"+i).css('background', 'url(images/full-star.png)');
} 
}

正在研究问卷表格,

我有5个问题,ans类型是星级......

以上代码段工作正常,当我要从左到右时,

例如假设。我将鼠标光标释放到4星,

如果我再次来,如果从2星开始意味着,第3颗星不会禁用模式,所以根据我的代码,它显示为

当我开始评级时的例子..

1=bright star
2=bright star
3=bright star
4=nobright star
5=nobright star

如果我再次从第二颗星开始评级,那么评级星看起来像

1=bright star
2=no bright star
3=bright star ======> it should go nobright star automatically , when i go the 2nd star..
4=nobright star
5=nobright star

1 个答案:

答案 0 :(得分:0)

看起来你并没有“关闭”任何超出当前目标的星星。我会改变它:

var numStars = 5;
function change_star_image(star_id){
    for (var i=1;i<numStars+1;i++){
         if(i<=star_id){
              $("#star_rating_image_"+i).css('background', 'url(images/full-star.png)');
         }else{
              $("#star_rating_image_"+i).css('background', 'url(images/empty-star.png)');
         }
    }
    $("#star_rating_image_"+star_id).mouseout(clearStars());
}
function clearStars(){
    for (var i=1;i<numStars+1;i++){
         $("#star_rating_image_"+i).css('background', 'url(images/empty-star.png)');
    }
}