JavaScript/jQuery中的基本数学问题-变量记忆值

Basic math issue in JavaScript/jQuery - Variable remembering value?

本文关键字:问题 变量 记忆 jQuery JavaScript      更新时间:2023-09-26

例如,我有一个按钮,上面有一个数字3。如果用户按下它,它就会变成4。如果他们再次按下,应该会回到3。相反,它转到2。问题是,当我试图用新的总和设置主变量时,它并没有保存值。有人能看到发生了什么吗?

这里是jQuery/JS:

    var $this = $(this),
    was_voted = $this.data('wasvoted'),
    vote_total = $this.data('vote_total');
    $.ajax({
        // edited
        },
        success : function(data) {

            if (was_voted == 1) {
                $this.vote_total = vote_total - 1;
                $this.data('wasvoted', 0);
            } else if (was_voted == 0) {
                $this.vote_total = vote_total + 1;
                $this.data('wasvoted', 1);
            }
            vote_total = $this.vote_total;
            $this.find('.vote_total').text($this.vote_total);
        }
    });

我不确定您的变量名发生了什么。$this.vot_total在其他地方有定义吗?这不会更改数据属性(除非我弄错了)。试试这个:

var $this = $(this),
    was_voted = $this.data('wasvoted'),
    vote_total = $this.data('vote_total');
    $.ajax({
        // edited
        },
        success : function(data) {
            if (was_voted == 1) {
                vote_total --;
            } else if (was_voted == 0) {
                vote_total ++;
            }
            $this.data('vote_total', vote_total);
            $this.find('.vote_total').text(vote_total);
        }
    });

我无法测试,所以很抱歉有错别字!