Jquery 星级评价功能(简单版)的实现代码

发布时间:2020-01-19编辑:脚本学堂
本文介绍下,在很多评论页中见到的星级评价功能,有多少评价就有多少个小星星,jquery实现的,有需要的朋友,参考下吧。

推荐:jqueryxingxingpingfen/ target=_blank class=infotextkey>jquery星星评分

1、页面内容部分
 

<div class="star">
  <a href="javascript:void(0)"></a><a href="javascript:void(0)"></a><a href="javascript:void(0)"></a><a href="javascript:void(0)"></a><a href="javascript:void(0)"></a><span class="star_word"></span>
</div>

2、css代码部分
 

*{ padding:0; margin:0;}
.star{
width:500px;
margin:100px auto;}
.star a{
display:inline-block;
background:#FF8000;
margin-right:10px;
width:16px; height:16px; transition:all 0.3s;}
.star .hover{ background:#0F0;}
.star .on{ background:#B50000;}
.star_word{ display:inline-block;}

3、js代码部分
需要引入外部Jquery文件,本例中为jquery-1.8.2.min.js。
 

复制代码 代码示例:

<script src="js/jquery-1.8.2.min.js" type="text/javascript"></script>
var wordIntro={
  myIntro:["差","一般","好","很好","非常好"]//评价文字调用
}
;(function(){
  $.fn.starIntro=function(){
    This =this;
    var attr=[];//变量存储,方便调用点击之后储存的值,这里没有应用push到数组,是由于数字只能是唯一,方便直接调用,查看方式见下attr调用
    $(This).find('a')
    .mouseenter(function(){//鼠标经过执行事件
      var index =$(this).index()+1;
      $(this).parent().find('a').removeClass('on');//清除所有click事件的颜色
      $(this).parent().find('a:lt('+index+')').addClass('hover');
    })
    .mouseleave(function(){//鼠标离开执行事件
      $(this).parent().find('a').removeClass('hover');
      $(this).parent().find('a:lt('+attr[0]+')').addClass('on');//没有执行click时值仍然保持在上次的click变量中
      })

    .click(function(){
      var index=$(this).index()+1;
      attr[0]=index;//储存变量,方便调用
      $(This).find('.star_word').html(wordIntro.myIntro[index-1]);
      $(this).parent().find('a').removeClass('on');
      $(this).parent().find('a:lt('+index+')').addClass('on');
    })
    }
})(jQuery)
$(function(){
  $('.star').starIntro();
}) by http://www.jb200.com