javascript - 当 "unhovering"项时重置类

标签 javascript rating-system

我获得了第一个星级并正在运行,但是,我缺少一个部分。 我的 HTML 看起来像这样:

<div class="rating">
  <a class="star-link" href="/vote?hack=3&amp;rating=1">
    <span class="glyphicon glyphicon-star-empty star inline star-active" data-hack="3" data-rating="1" id="3-star-1"></span>
  </a>
  <a class="star-link" href="/vote?hack=3&amp;rating=2">
    <span class="glyphicon glyphicon-star-empty star inline star-active" data-hack="3" data-rating="2" id="3-star-2"></span>
  </a>
  <a class="star-link" href="/vote?hack=3&amp;rating=3">
    <span class="glyphicon glyphicon-star-empty star inline star-active" data-hack="3" data-rating="3" id="3-star-3"></span>
  </a>
  <a class="star-link" href="/vote?hack=3&amp;rating=4">
    <span class="glyphicon glyphicon-star-empty star inline star-active" data-hack="3" data-rating="4" id="3-star-4"></span>
  </a>
  <a class="star-link" href="/vote?hack=3&amp;rating=5">
    <span class="glyphicon glyphicon-star-empty star inline" data-hack="3" data-rating="5" id="3-star-5"></span>
  </a>
</div>

这是我的 JavaScript:

javascript:
  $('span.star').hover(function() {
    hack_id = this.dataset.hack;
    rating = this.dataset.rating;

    for (i = 1; i <= 5; i++) {
      if (i <= rating) {
        $('#' + hack_id + '-star-' + i).addClass('star-active');
      } else {
        $('#' + hack_id + '-star-' + i).removeClass('star-active');
      }
    }
  });

现在,当我将鼠标悬停在星星上时,它会很好地应用该类,并且还会删除不需要的星星的类。 我的最后一个问题是,一旦应用了类并且我将鼠标移到其他地方,它就不会撤消更改。 我非常需要某种:

if (not hovering over any star)
   remove all classes set before
endif

我知道这是一项非常基本的任务,但我似乎无法完成它。 提前谢谢大家!

最佳答案

你可以使用jquery的mouseout(): http://api.jquery.com/mouseout/

此外,您可以简单地在 css 中定义,而不是使用 jquery 来应用类

.star-active:hover{
/*whatever you have in .start-active now*/
}

那么你就不需要任何 jquery/js 了

关于javascript - 当 "unhovering"项时重置类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26489348/

相关文章:

javascript - 使用 lodash 根据条件过滤对象数组中的数据

javascript - 在 Material-UI Accordion 中添加表行数据

javascript - 从数据库 IP 为每个用户位置绘制标记

javascript - 使用 cypress 转移到离线模式返回了一个从 Unresolved promise

javascript - 如何编辑一篇博文的 CSS 而不是其他博文以获得 5 星评级系统?

javascript - 通过ajax发送json对象

Android:垂直RatingBar?

python - Django 星级评分系统和 AJAX

mysql - 我将如何在我的数据库设计中实现星级评分系统?

php - 如果存在某些值,则 mysql 更新,否则创建一个新条目