2012-07-28 177 views
-1

下面的代碼片段沒有讓我看到我的控制檯中顯示的全局變量ID的值。我哪裏錯了?Javascript全局變量問題

var id; 

function set_id(myid){ 
id=myid; 
} 

function get_id(){ 
return id; 
} 

$("#btn").click(function(){ 
$.post("....", function(data){ //data reurns a JSON 
    set_id(id); //success!! 
} 
} 

$("#show").click(function()[ 
console.log(get_id()); //doesn't work, how do I get this workin.. Where am I going wrong 
} 
+0

它必須在控制檯上打印某些內容。什麼? – MaxArt 2012-07-28 10:43:36

+0

您是否試圖在get_id()中返回全局變量ID?嘗試在$(「#show」)中使用console.log(id)。點擊() – 2012-07-28 10:44:00

+1

Works http://jsfiddle.net/Kirrr/vMBkZ/ – Kir 2012-07-28 10:45:44

回答

1

此代碼看起來可疑對我說:

$("#show").click(function()[ 
    console.log(get_id()); //doesn't work, how do I get this workin.. Where am I going wrong 
} 

也許你的意思是這樣的:

$("#show").click(function(){ 
    console.log(get_id()); 
}); 
+0

如果他的工作腳本中的錯誤是這樣的,第一個按鈕不會工作太 – Kir 2012-07-28 10:51:35

+0

是的,我看到第一個jQuery使用也沒有正確結束。但是這有一個方括號,而不是一個捲曲的。我認爲這是一個更大的問題。 – HeM01 2012-07-28 10:54:23

3

爲什麼你會使用全局變量和getter/setter方法?你可以在任何地方設置它,因爲它GLOBAL:

id = x; 

,並得到它的任何地方:

x = id; 

所以,你的代碼是:

$("#btn").click(function() { 
    $.post("....", function(data) { 
     id = data.id; 
    }); 
}); 

$("#show").click(function() { 
    console.log(id); 
}); 
+0

Thx用於更正語法:)我剛剛複製了作者的代碼。 – 2012-07-28 11:07:19

0

你的語法是錯誤的。 [只是在console.log之前

+0

在'click'後面它的語法也不夠''' – Kir 2012-07-28 11:18:37