我正在创建一个Q &允许用户对答案进行投票的网站。我已经将project.problem.upVoted设置为用户已经投票的答案列表。如果答案已经被投票,upvote箭头的点击事件的回调应该删除当前的投票,如果它还没有被投票,它应该投票。这个表达式为什么总是假?
下面是我的UPARROW图像回调函数:
project.problem.upVoteCallback = function(event)
{
var answerID = $(this).parents("div.answer").find("input.answerID").attr("value");
var isUpVoted = $.inArray(answerID, project.problem.upVoted) > -1;
//some debug statements
alert("id: " + answerID + " | upvoted: " + project.problem.upVoted);
alert("isupvoted: " + isUpVoted);
if(isUpVoted)
{
//delete vote
}
else
{
//cast upvote
}
}
的问题是,isUpVoted永远是假的。例如,我的测试页上,当我尝试删除一个投票我得到这样的输出:
id: 91 | upvoted: 91,92,93
isupvoted : false
然而,如果我谓词复制到Chrome浏览器的JS控制台,而代answerID与91它的值为true:
$.inArray(91, project.problem.upVoted) > -1;
true
是$ .inArray(answerID,project.problem.upVoted)返回0预期?你应该尝试做parseInt(answerID),它可能会以字符串形式出现。 – drewblaisdell
是啊,看看那个函数调用返回 – Claudiu
在answerID上使用parseInt修复它。谢谢! :) – Jackie