我试图在我的网站上创建一个民意调查功能。如果用户在按下按钮时尚未投票,我希望计数增加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 operator和equality operator在js中如何工作