我有另一個JavaScript/jQuery的變量範圍問題要求...:無法再訪問該函數嗎?
說我聲明瞭一個名爲Container的對象。其中有一個名爲myimage的變量,它將從某個xml文件中讀取地址。
Container = function()
{
var myimage;
}
Container.prototype.readXML = function()
{
$.get("assest/xml/images.xml",function(xml)
{
//Read in URL path from XML file, and store them into memeber variables
myimage = $(xml).find('background').text();
//Apply background image into body, and apply css styple into it
$("body").css('background-image','url(' + myimage + ')');
//This alert will work
alert(myimage);
});
//This alert gives not defined variable
alert(myimage);
}
請看看兩個警報部分。看來這個變量我在Container對象中定義,只能在readXML函數內部工作。但沒有出。我無法理解爲什麼會發生這種情況。
我使用一些其他的符號,就像 this.myimage 並通過這種改變名稱自我訪問它宣佈之前執行$不用彷徨功能 無功自我=這一點;
但它變得更糟。有時它甚至不能在get函數中達到。
你能幫我解決嗎?我的最終目標是在該對象中創建一個數組,並從XML中讀取大量數據,而不是將它們顯示爲HTML。如果我在對象中設置的變量無法達到,我無法做到這一點。
謝謝!
在你的「的ReadXml()」功能,即「MYIMAGE」變量** **不能在構造函數中聲明的局部變量 - 相反,這是一個全球** **變量。您的第二次警報不起作用的原因是該變量在ajax調用完成之前未定義。 – Pointy