Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 星号评级如果单击星号,如何启用上一个星号也被单击_Javascript_Jquery - Fatal编程技术网

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,添加所选的
类。关于。。。不要全部点击?只需将填充样式应用于它们。好吧,它在这里起作用,那么有什么不同呢?我猜不出为什么它不起作用,除非你能告诉我更多的细节。加价不同吗?事件侦听器被正确绑定了吗?它在这里工作,那么有什么不同呢?我猜不出为什么它不起作用,除非你能告诉我更多的细节。加价不同吗?事件侦听器是否已正确绑定?