Javascript Jquery的变量更新错误

Javascript Jquery的变量更新错误,javascript,jquery,Javascript,Jquery,我正在使用这个函数来改变我的div文本,带有一些“typer”效果插件 问题是,当我更改变量(包含文本)时,我需要刷新整个页面以查看文本的更改 function promp() { var a = reta(); if (a == 0) { zoomneg(); } else { zoom(); if (a == 1) { var str = "Text"; } else if

我正在使用这个函数来改变我的div文本,带有一些“typer”效果插件

问题是,当我更改变量(包含文本)时,我需要刷新整个页面以查看文本的更改

function promp() {

    var a = reta();

    if (a == 0) {
        zoomneg();
    } else {
        zoom();

        if (a == 1) {
            var str = "Text";
        } else if (a == 2) {
            var str = "Text 2";
        } else if (a == 3) {
            var str = "Text 3";
        } else if (a == 4) {
            var str = "Text 4";
        }

    }

    $(".element").typed({
        strings: [str],
        typeSpeed: 0,
        contentType: 'text'
    });

};
每次my
var a
更改时,有没有办法更改变量
str
?当我更改值时,函数的其他部分工作,问题就在于这个变量


谢谢

这是一个可能的解决方案,使用getter和setter调用函数来处理值的变化

function zoomFn(a) {
    if (a == 0) {
        return zoomneg();
    }
    zoom();
}

function getTextByVal(a) {
    switch (a) {
        case 1:
            return "Text";
        case 2:
            return "Text 2";
        case 3:
            return "Text 3";
        case 4:
            return "Text 4";
    }
    return null;
}

function handleValueChanged(a) {
    zoomFn(a);
    $(".element").typed({
        strings: [getTextByVal(a)],
        typeSpeed: 0,
        contentType: 'text'
    }); 
}

var o = {
    set a(a){
        this._a = a;
        handleValueChanged(a);
    },
    get a(){
        return this._a;
    }
};

a
变量何时更改?或者,更改了什么变量?您可以创建对象,添加“a”作为字段,并覆盖将执行所需代码块的“a”setter函数。每次单击屏幕时。如果我单击左键,变量值变为-1,如果我单击右键,变量值变为+1。当
a
更改时,此函数工作,只有
str
值无法工作。假设执行promp函数,则仅当a为1、2、3或4时,才会分配str。我的建议是在第一个if语句之前使用console.log a。谢谢,威尔。console.log正确返回a值,但变量仍然相同。谢谢,Kaspars,但我不能使用此代码。console.log没有问题,但函数会停止以这种方式工作。