Javascript 如何使用单击和切换更新变量值

Javascript 如何使用单击和切换更新变量值,javascript,jquery,Javascript,Jquery,适用于文档。就绪状态,但不适用于单击事件。范围问题可能是原因 我不知道如何解决这个问题 目的是将baseVar保持为常数@50 增加baseVar的值,因为 baseVar+=varChange; 切换varChange,并更新baseVar 在document.ready状态下,我们得到: 内部值:101 外部值:101 基准baseVar=50 更新后的baseVar=151 如果我单击,我分别得到了预期的内部值: 内部val:501 内部值:101 但是(更新后的baseVar=151)无

适用于
文档。就绪
状态,但不适用于
单击
事件。范围问题可能是原因

我不知道如何解决这个问题


目的是将baseVar保持为常数@50
增加baseVar的值,因为
baseVar+=varChange;
切换varChange,并更新baseVar


在document.ready状态下,我们得到:


内部值:101
外部值:101
基准baseVar=50
更新后的baseVar=151


如果我单击,我分别得到了预期的内部值:
内部val:501
内部值:101


但是(更新后的baseVar=151)无论它切换的是什么值


而不是我在做什么,这影响了外部变量baseVar,其值为:
更新后的baseVar=151
更新后的baseVar=551


注意:有很好的理由将baseVar变量保留在selectBaseVar()的范围之外,以使其他函数受益于相同的切换结果,但不在selectBaseVar()的范围之内



谢谢

这似乎对我有用:

确保您正在包装代码

$(document).ready(function() {

    var varChange = '';
    var baseVar = 50;

    selectBaseVar = function(){
        switch (varChange) {case 101: varChange = 501; break;
                            case 501: varChange = 101; break;
                            default:  varChange = 101; break;}
        console.log('internal val: '+varChange);
        return varChange;
    };

    $("#myButton").click(function(){
        selectBaseVar();
    });

    selectBaseVar();

    console.log('external val: '+varChange);
    console.log('base baseVar = '+baseVar);
    baseVar += varChange;    // How do I update this value upon the button click event?
    console.log('updated baseVar = '+baseVar); // it works only in the document.ready state
});

看来你要达到的目标是:

$(document).ready(function() {

});

这个代码在哪里?这是您的
$(文档).ready
处理程序的正文吗?
$(document).ready(function() {

    var varChange, baseVar = 50;

    selectBaseVar = function(){
        varChange = (varChange == 101) ? 501 : 101;
        console.log('internal val: '+varChange);
        return varChange;
    };


    $("#myButton").click(function(){
        selectBaseVar();
        baseVar += varChange;
        console.log('button handler val: ' + varChange);
    });

    selectBaseVar();

    console.log('external val: ' + varChange);
    console.log('base baseVar = ' + baseVar);
    baseVar += varChange;    // How do I update this value upon the button click event?
    console.log('updated baseVar = ' + baseVar); // it works only in the document.ready state    
});