2011-02-04 29 views
1

我有一個AJAX功能:如何在jQuery/JavaScript中設置全局變量?

$.ajax({ 
     url: 'http://localhost/process.php', 
     type: 'post', 
     data: '', 
     success: function(output) { 

var animal = output 

     } 
    }); 

我想var animal進行全局設置這樣我就可以在頁面上任何地方調用它甚至外面的AJAX功能的成功回調。這個怎麼做?

+3

請記住,您的`$ .ajax`調用是異步的。我可以感覺到*「爲什麼動物不明確?」*在轉角處。 ; o) – user113716 2011-02-04 21:28:46

+0

`console.log(typeof animal); `//由於未初始化可能返回undefined。 – Roylee 2014-02-06 07:58:39

回答

5

聲明任何函數之外或jQuery的構建

var animal = null; 

$(function(){ 
    $.ajax({ 
     url: 'http://localhost/process.php', 
     type: 'post', 
     data: '', 
     success: function(output) { 
      animal = output 
     } 
    }); 
}); 
2

如果你希望它是一個全局變量,然後把它聲明爲一個全局變量。一般來說,您可以通過在您的.js文件的頂部放置

var animal; 

來實現。然後,在代碼中對animal的任何引用都將是全局變量,除非您在範圍內的其他位置重新使用該名稱。

-1

刪除var使全局變量。

但是請注意,使用全局變量通常被認爲是不好的做法,因爲它們很難調試。

+2

IE doenst總是定義這些變量,所以你可以在IE中得到一些錯誤 – 2011-02-04 21:27:14

0

如果你想動態地做到這一點。

jQuery.globalEval()

http://api.jquery.com/jQuery.globalEval/

此方法與使用常規的JavaScript eval()函數,它在全球範圍內(這是動態加載外部腳本重要)內執行的行爲不同。

$.globalEval('var animal = ' + output);