我正在創建一個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