Javascript 如何创建一个将答案标记为已接受的系统?

Javascript 如何创建一个将答案标记为已接受的系统?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,解释:我正在尝试建立一个公认的答案系统,有三种情况: 将新答案标记为已接受答案(尚未接受答案) 撤销已接受的答案 从一个答案切换到另一个答案 这是我的密码: $(“body”)。在('click','fa check',函数(e)上{ //通过ajax发送请求,如果成功,则 如果(this.attr('color')='#44b449'){//undo this.css({“color”:“#aaa”})//将gry color设置为标记的图标 }else{//切换或标记新的 $('.fa

解释:我正在尝试建立一个公认的答案系统,有三种情况:

  • 将新答案标记为已接受答案(尚未接受答案)
  • 撤销已接受的答案
  • 从一个答案切换到另一个答案
这是我的密码:

$(“body”)。在('click','fa check',函数(e)上{
//通过ajax发送请求,如果成功,则
如果(this.attr('color')='#44b449'){//undo
this.css({“color”:“#aaa”})//将gry color设置为标记的图标
}else{//切换或标记新的
$('.fa check').css({“color”:“#aaa”});//为所有图标设置灰色
this.css({“color”:“#44b449”});//将绿色设置为标记的图标
}
});
.fa检查{
颜色:#aaa;
光标:指针;
}
.fa检查:悬停{
颜色:#999;
}

答复1


答复2


答复3


首先,当调用
上的jQuery方法时,当它引用的是doElement而不是jQuery对象时,代码会抛出错误

要解决您的问题,您可以通过使用类而不是应用内联CSS样式来简化逻辑。这允许您在单击
.fa check
元素时简单地切换类。试试这个:

$(“body”)。在('click','fa check',函数(e)上{
//通过ajax发送请求,如果成功,则
$('.fa check').not(this.removeClass('checked');
$(this.toggleClass('checked');
});
.fa检查{
颜色:#aaa;
光标:指针;
}
.fa-check.checked{
颜色:#44b449;
}

答复1


答复2


答复3

使用此方法

功能点击div(div){
$(“#main#u div div.fa check”).css(“颜色”,“aaa”);
$(“#“+div+”.fa check”).css(“颜色”,“#44b449”);
}
#分区1、#分区2、#分区3
{
宽度:100%;
高度:100px;
}
.fa支票{
颜色:#aaa;
光标:指针;
}
.fa检查:悬停{
颜色:#999;
}

答复1


答复2


答复3


你能告诉我我的问题赢得了什么样的否决票吗?我为再次向你提问而感到羞愧。但是你看,我的代码在现实中有明显的不同。就像是。注意,我应该在
.on('click'…
)上使用
.l\u acceptedanswer
类。您能告诉我如何修复它吗?没问题,在这种情况下,您需要
查找
.l\u acceptedanswer
中的
fa check
元素。尝试一下:您的方法不支持撤消。