別の javascript/jQuery の変数スコープに関する質問があります...
Container という名前のオブジェクトを宣言したとします。xml ファイルからアドレスを読み取る myimage という変数があります。
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);
}
2つのアラートセクションをご覧ください。Container オブジェクトで定義したこの変数は、その readXML 関数内でのみ機能するようです。しかし、アウトではありません。なぜこれが起こったのか理解できません。
$.get 関数 var self= this; を実行する前に、this.myimage で宣言し、this の名前を self に変更してアクセスするなど、他の表記法を使用します。
しかし、それは悪化します。場合によっては、get 関数内で到達できなくなることさえあります。
これで私を助けてもらえますか?私の最終的な目標は、そのオブジェクトの配列であり、HTML に表示するよりも XML から大量のデータを読み取ることです。オブジェクトに設定した変数に到達できない場合、それを行う方法はありません。
ありがとうございました!!