2011-09-12 50 views
0

我在引用一个对象文本中的全局变量的一个问题:JavaScript变量的作用域问题

function f() { 
    globalVar = "test"; 
} 

$(document).ready(function() { 
    f(); 
    var a = $("#id").autocomplete({ 
     lookup: globalVar //says globalVar is undefined 
    }); 
    $("#button").click(function() { 
     alert(globalVar); //works 
    }); 
}); 

我怎样才能设置lookup价值globalVar?

+0

这是你的实际码吗?没有理由在'alert()'中定义'globalVar',但未定义属性值赋值。 – user113716

+0

您测试了哪些浏览器? – hugomg

+0

@patrick你说得对,警报实际上是在一个点击事件中显示的。警报没有工作,但它的确如现在那样工作。 – Flash

回答

0

没有理由不应该工作,它要么有关于如何使用自动完成功能,或问题的功能本身就是一个误区做。但是全球应该被分配,而且这样一个全局对象就没有问题了。无论哪种方式,没有更多的代码(即自动完成功能),无法说出问题所在。

1

你可以在所有函数之外定义它,像这样;

var globalVar ; 

function f() { 
    globalVar = "test"; 
} 

$(document).ready(function() { 
    f(); 
    alert(globalVar); //works 
    var a = $("#id").autocomplete({ 
     lookup: globalVar 
    }); 
});