html

<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>

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;}

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();
})

posted on 2013-04-01 18:08  apple_半个苹果  阅读(345)  评论(3编辑  收藏  举报