在Javascript中实现upvote/downvote系统但无法正确计算数学

dav*_*ave 5 javascript jquery vote

var $arrow       = $(this);
var $sibling     = $arrow.siblings('span.arrow');
var $score       = $arrow.siblings('span.score');

var vote         = $arrow.hasClass('up') ? 'up' : 'down';
var alreadyVoted = $sibling.hasClass('voted');

if (!USER_LOGGED_IN)
{
    alert('You must be logged into vote');
}
else if (!$arrow.hasClass('voted'))
{
    if (alreadyVoted)
        $sibling.removeClass('voted');

    $arrow.addClass('voted');
    $score[0].innerHTML = parseInt($score[0].innerHTML) + ((vote == 'up') ? 1 : -1);
}
Run Code Online (Sandbox Code Playgroud)

我有一个upvote和downvote按钮.这些按钮旁边会显示"当前得分",我希望在投票时增加/减少.

例如,如果他们加载页面并看到分数是200.当他们投票时,分数将变为201.当他们downvote时,分数需要改为199.为什么?因为如果他们在上升后投票(改变他们的想法),那么投票需要从原来的得分开始.不是他们通过upvotting创建的新分数.

基本上,如果他们赞成然后投票,那么目前的分数会回到原来的分数.他们的投票不是投票.

我在制作这项工作时遇到了麻烦,所以他们投了票......

Rob*_*sto 0

据我所知,这正在按预期进行。如果你投赞成票,那就+1。如果您随后投反对票(递减),则结果为负一,n + 1 - 1 的结果应为 n。如果他们想实现真正的否决,他们应该再次否决。