我试图在我的网站上创建一个民意调查功能。如果用户在按下按钮时尚未投票,我希望计数增加1;如果用户在按下按钮时已经投票,则计数减少1。现在,它会上升到无穷远,永远不会达到-1。

如果将if(voted)更改为if(!voted),则会出现相反的问题,并且每次单击都变为-1。

var voted = new Boolean(false);

        $(document).ready(function () {
            $("#container div button").click(function () {
                if (voted) {
                    $(this).parent().animate({
                        width: '+=100px'
                    }, 500);

                    $(this).prev().html(parseInt($(this).prev().html()) + 1)
                    voted === true;

                } else {
                    $(this).parent().animate({
                        width: '-=100px'
                    }, 500);
                    $(this).prev().html(parseInt($(this).prev().html()) - 1)
                    voted === false;

                }

            });
        });

最佳答案

voted === true应该是voted = true



voted === false应该是voted = false

您必须重新分配voted变量,而不是检查是否相等。

看看assignment operatorequality operator在js中如何工作

09-27 10:37