我正在尝试根据数据评级标签在鼠标悬停时为 1 到 5 个元素着色。我正确地获取了数据,但是发生了几件事:
每次悬停时该功能被访问 5 次,而不是一次访问。
所有元素都在鼠标进入时获得颜色,然后所有 5 个元素在鼠标离开时被清除。
我能感觉到有一种更简洁的方法可以做到这一点,尤其是在循环部分。我试图在这里保持干燥,这肯定不是干燥的。
HTML 部分
<h2>
<i class="far fa-star" data-rating="1">1</i>
<i class="far fa-star" data-rating="2">2</i>
<i class="far fa-star" data-rating="3">3</i>
<i class="far fa-star" data-rating="4">4</i>
<i class="far fa-star" data-rating="5">5</i>
</h2>
jQuery 部分:
$('[class="far fa-star"]').mouseenter(function() {
var target = parseInt($(this).data('rating'));
for (i = 0; i < target; i++) {
$(this).parent().children(i).css('background-color', 'yellow');
}
});
$('[class="far fa-star"]').mouseleave(function() {
var target = parseInt($(this).data('rating'));
for (i = 4; i > target; i--) {
$(this).parent().children(i).css('background-color', 'transparent');
}
});
小提琴在这里 -小提琴
萧十郎
梵蒂冈之花
慕神8447489
哈士奇WWW
米脂
相关分类