【发布时间】:2020-08-19 01:40:18
【问题描述】:
我的星级评定系统有问题。星级评分运行良好,但只有在我单击两次时才会突出显示该星。例如,如果我想给 3/5 打分,我需要点击星号 3 两次以使其突出显示。如何使其仅单击一次? :/ 谢谢!
function firstRating() {
const star = document.querySelector(".rating").children;
for (let i = 0; i < star.length; i++) {
star[i].addEventListener("click", function() {
for (let j = 0; j < star.length; j++) {
star[j].classList.remove("fa", "fa-star-o");
star[j].classList.add("fa", "fa-star");
}
for (let j = 0; j <= i; j++) {
star[j].classList.remove("fa", "fa-star-o");
star[j].classList.add("fa", "fa-star");
}
});
}
}
function secondRating() {
const star = document.querySelector(".rating_2").children;
for (let i = 0; i < star.length; i++) {
star[i].addEventListener("click", function() {
for (let j = 0; j < star.length; j++) {
star[j].classList.remove("fa", "fa-star-o");
star[j].classList.add("fa", "fa-star");
}
for (let j = 0; j <= i; j++) {
star[j].classList.remove("fa", "fa-star-o");
star[j].classList.add("fa", "fa-star");
}
});
}
}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<div class="form-group" onclick="firstRating()">
<label class="col-lg-5 col-md-4 control-label" for="firstRating">Experience</label>
<div class="rating col-lg-7" style="float: right">
<input type="hidden" name="rating_1" id="rating_1" value="0" />
<span class="fa fa-star-o" id="rate1"></span>
<span class="fa fa-star-o" id="rate2"></span>
<span class="fa fa-star-o" id="rate3"></span>
<span class="fa fa-star-o" id="rate4"></span>
<span class="fa fa-star-o" id="rate5"></span>
</div>
</div>
<div class="form-group" onclick="secondRating()">
<label class="col-lg-5 col-md-4 control-label" for="secondRating">Speed</label>
<div class="rating_2 col-lg-7" style="float: right">
<input type="hidden" name="rating_2" id="rating_2" value="0" />
<span class="fa fa-star-o" id="ratee1"></span>
<span class="fa fa-star-o" id="ratee2"></span>
<span class="fa fa-star-o" id="ratee3"></span>
<span class="fa fa-star-o" id="ratee4"></span>
<span class="fa fa-star-o" id="ratee5"></span>
</div>
</div>
【问题讨论】:
标签: javascript php codeigniter onclick