1

我有一个非常大的 JS 脚本,其中包含许多函数、回调等等……我的第一个操作是从 Ajax 调用中获取一个值。然后我将此值设置为在脚本开头定义的全局变量,以便我可以一次又一次地引用该值……例如,该值确定用户语言。

// define my global var at the top of my script..
var globalOpCo = "";

// I then try to give this a value in the next function I call...
$.ajax({
        url:"getURL",
        type:"POST",
        dataType:"json",
        success:function(data){
            if(data === null){
            // do something...  
            }else{
            // set the current language...
                globalOpCo = data.Opco.toLowerCase();
                console.log(globalOpCo); // this is the value I want it to be from data.Opco.toLowerCase() 
                // now do something.... 
            }
        },
        error:function(xhr, ajaxOptions, thrownError){
            console.log(xhr.status);
            console.log(xhr.statusText);
            console.log(thrownError);
        }
    });

现在稍后在我的脚本中,我希望globalOpCo像这样传递给另一个函数......

 $("#aButton").on("click", function(){
        anotherFunction(globalOpCo); // I want to pass the globalOpCo as an arguement but its value isn't get updated above?
    });

但是 的值globalOpCo是一个空字符串!在上面的 ajax 调用运行之前或之前,无法单击 #aButton。有人可以帮忙吗?

4

3 回答 3

2

默认禁用您的按钮,在您定义 globalOpCo 后将您的 onclick 添加到您的成功函数中,并在您设置 onclick 时启用它。奖励:现在它不再需要是全局的,因为需要它的代码就在它旁边。哪个好=)

于 2013-02-06T14:02:15.383 回答
0

好吧,我可能已经解决了这个问题!它是作用域,变量在内部定义,$("document").ready(function(){})而调用它的函数在外部$("document").ready(function(){})

于 2013-02-06T14:05:33.823 回答
0

全局变量只是window浏览器中全局对象的属性。您可以通过显式使用window.globalOpCo.

于 2013-02-06T14:07:33.603 回答