采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
第一个问题是,在点赞与踩的过程中,点赞与踩的箭头高亮颜色变化存在问题,发现每次点击后questionUpVote和questionDownVote的class中已有voted并不会改变,如果在ajax成功后,如果用location.reload(true)刷新页面可以嘛?如果不可以,怎样解决这个问题呢?
第二个问题是,问题详情页中同一个用户的两个回答,采纳只能选择用户最新一次的回答,而时间较前的回答不能采纳,前端不会发起请求,改怎样解决呢?
用的代码版本是:v1.6.2 谢谢老师!!
不好意思,这么久才回复。这两个问题的确是项目的bug,我看部署好的demo也有这问题 o(╥﹏╥)o
问题一:可以用location.reload(true)刷新页面,但可以直接通过js改变class
answer_sample.html
<span id="answerVotes" class="votes">{{ answer.total_votes }}</span>
改成
<span class="votes">{{ answer.total_votes }}</span>
qa.js中$(".answer-vote")函数改成
$(".answer-vote").click(function () { // 给回答投票 const answer_id = $(this).closest(".answer").attr("answer-id"); const answer = $('div[answer-id=' + answer_id + '] .votes'); if ($(this).hasClass("up-vote")) { vote = "U"; } else { vote = "D"; } $.ajax({ url: '/qa/answer/vote/', data: { 'answer': answer_id, 'value': vote }, type: 'post', cache: false, success: function (data) { if (vote === "U") { $('div[answer-id=' + answer_id + '] .down-vote').removeClass('voted'); $('div[answer-id=' + answer_id + '] .up-vote').addClass('voted'); } else { $('div[answer-id=' + answer_id + '] .up-vote').removeClass('voted'); $('div[answer-id=' + answer_id + '] .down-vote').addClass('voted'); } answer.text(data.votes); } });});
问题二:bug比你说的更严重,不是只能采纳同一个用户的最新回答,是只能采纳所有未被接受回答中的最后一个。是qa.js的问题,$("#acceptAnswer").click(function ()...这个函数里,当有多个回答的时候,每个回答都有id="acceptAnswer",$("#acceptAnswer")只会选中第一个未被接受的回答,改一下jQuery选择器就好了
<i id="acceptAnswer" class="fa fa-check accept" aria-hidden="true" title="点击采纳回答"></i>
<i class="fa fa-check accept acceptAnswer" aria-hidden="true" title="点击采纳回答"></i>
qa.js改成
$(".acceptAnswer").click(function () { // 接受回答 const answer_id = $(this).closest(".answer").attr("answer-id"); const answer = $('div[answer-id=' + answer_id + '] .acceptAnswer'); $.ajax({ url: '/qa/accept-answer/', data: { 'answer': answer_id }, type: 'post', cache: false, success: function (data) { $(".accepted").removeClass("accepted"); $(".accepted").prop("title", "点击接受回答"); answer.addClass("accepted"); answer.prop("title", "该回答已被采纳"); } });});
谢谢你的问题,我已更正push到master了
登录后可查看更多问答,登录/注册
融合Django高级用法/算法/设计模式/TestCase测试/云计算打造项目
2.5k 15
7.5k 1
2.3k 6
1.6k 4
1.8k 2