Javascript 星号评级如果单击星号,如何启用上一个星号也被单击
Javascript 星号评级如果单击星号,如何启用上一个星号也被单击,javascript,jquery,Javascript,Jquery,$('.ratings_stars')。单击(函数(){ $('.ratings_stars').removeClass('selected');//从所有类中删除所选类 $(this.addClass('selected'); var rating=$(this.data('rating');//从所选的星号获取评级 $(“#评级”).val(评级);//设置隐藏评级表单元素的值 }); fa星{ 颜色:rgba(1121111110.856); } .fa星:悬停{ 颜色:#e2334c;
$('.ratings_stars')。单击(函数(){
$('.ratings_stars').removeClass('selected');//从所有类中删除所选类
$(this.addClass('selected');
var rating=$(this.data('rating');//从所选的星号获取评级
$(“#评级”).val(评级);//设置隐藏评级表单元素的值
});代码>
fa星{
颜色:rgba(1121111110.856);
}
.fa星:悬停{
颜色:#e2334c;
}
.fa-star.入选{
颜色:#001628;
}
使用和
$('.rating')。在('click','.ratings_stars',函数(){
var star=$(此)
star.addClass('selected')
star.prevAll().addClass('selected')
star.nextAll().removeClass('selected')
$('#rating').val(star.data('rating'))
});代码>
.fa星{
颜色:rgba(1121111110.856);
}
.fa星:悬停{
颜色:#e2334c;
}
.fa-star.入选{
颜色:#001628;
}
使用和
$('.rating')。在('click','.ratings_stars',函数(){
var star=$(此)
star.addClass('selected')
star.prevAll().addClass('selected')
star.nextAll().removeClass('selected')
$('#rating').val(star.data('rating'))
});代码>
.fa星{
颜色:rgba(1121111110.856);
}
.fa星:悬停{
颜色:#e2334c;
}
.fa-star.入选{
颜色:#001628;
}
没有任何jQuery的简单解决方案:
const stars=document.queryselectoral('.ratings_stars');
document.addEventListener('单击',(evt)=>{
if(evt.target.classList.contains('ratings_stars')){
单击targetreached=false;
for(恒星中的恒星){
类列表[单击TargetReached?'remove':'add']('selected');
如果(星号===evt.target){
单击targetreached=true;
}
}
result.textContent=evt.target.dataset.rating;
}
});代码>
fa星{
颜色:rgba(1121111110.856);
}
.fa星:悬停{
颜色:#e2334c;
}
.fa-star.入选{
颜色:#a00;
}
没有任何jQuery的简单解决方案:
const stars=document.queryselectoral('.ratings_stars');
document.addEventListener('单击',(evt)=>{
if(evt.target.classList.contains('ratings_stars')){
单击targetreached=false;
for(恒星中的恒星){
类列表[单击TargetReached?'remove':'add']('selected');
如果(星号===evt.target){
单击targetreached=true;
}
}
result.textContent=evt.target.dataset.rating;
}
});代码>
fa星{
颜色:rgba(1121111110.856);
}
.fa星:悬停{
颜色:#e2334c;
}
.fa-star.入选{
颜色:#a00;
}
此演示利用每个星星的索引位置。悬停效果是纯CSS:
- 将
display:flex
分配给星星的父标记
- 颠倒星星的顺序,并按相反顺序分配
order
属性
- 请记住,三元条件也是相反的(A行)
- 将此CSS规则集添加到原始
:hover
规则集
.star:hover~.star
$('.rating')。在('click','.star',函数()上{
设点=$(this.index();
$('.star')。每个(函数(索引){
返回索引>=点?$(this).addClass('selected'):
$(this.removeClass('selected');//A
});
$('#rating').val($(this.data('rating'));
log($('#rating').val());
});代码>
.rating{
显示器:flex;
对正内容:空间均匀;
宽度:25%;
}
.明星{
显示:内联块;
颜色:rgba(1121111110.856);
光标:指针;
}
.星{
颜色:#001628;
}
星星:悬停,
.star:悬停~.star{
颜色:#e2334c;
}
.作为控制台包装{
最大高度:25px!重要
}
此演示利用每个星星的索引位置。悬停效果是纯CSS:
- 将
display:flex
分配给星星的父标记
- 颠倒星星的顺序,并按相反顺序分配
order
属性
- 请记住,三元条件也是相反的(A行)
- 将此CSS规则集添加到原始
:hover
规则集
.star:hover~.star
$('.rating')。在('click','.star',函数()上{
设点=$(this.index();
$('.star')。每个(函数(索引){
返回索引>=点?$(this).addClass('selected'):
$(this.removeClass('selected');//A
});
$('#rating').val($(this.data('rating'));
log($('#rating').val());
});代码>
.rating{
显示器:flex;
对正内容:空间均匀;
宽度:25%;
}
.明星{
显示:内联块;
颜色:rgba(1121111110.856);
光标:指针;
}
.星{
颜色:#001628;
}
星星:悬停,
.star:悬停~.star{
颜色:#e2334c;
}
.作为控制台包装{
最大高度:25px!重要
}
什么是html?我更新了代码使用for循环,每次迭代-1,添加所选的类。关于。。。不要全部点击?只需对它们应用填充样式。什么是html?我更新了代码使用for循环,每次迭代-1,添加所选的类。关于。。。不要全部点击?只需将填充样式应用于它们。好吧,它在这里起作用,那么有什么不同呢?我猜不出为什么它不起作用,除非你能告诉我更多的细节。加价不同吗?事件侦听器被正确绑定了吗?它在这里工作,那么有什么不同呢?我猜不出为什么它不起作用,除非你能告诉我更多的细节。加价不同吗?事件侦听器是否已正确绑定?