2011-09-12 70 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 
    }); 
});