2012-02-17 3 views
0

私は以下のコードを持っていて、それをオブジェクトとして使いたいと思っています。Javascript初心者ajaxでオブジェクトを作成する

オブジェクトのプロパティにアクセスするにはどうすればよいですか?現在私はいつも未定義になっています!

function getLoggerInfo() 
{ 

    $.ajax({ 
    url: "data.json", 
    type: "GET", 
    data: {emGetInfo: "logger"}, 
    dataType: "json", 
    success: function(response){ 
     //alert("1: " + this.loggerName); 
     loggerName = response.emGetInfo[0].loggerName; 
     protocol = response.emGetInfo[0].protocolVersion; 
     $("#console").text("Logger Name: " + loggerName + " - Protocol Version: " + protocol); 
     return; 
     }, 
    error: function(jqXHR, textStatus, errorThrown){ 
     $("#console").text("ERROR: AJAX errors. " + jqXHR + " : " + textStatus + " : " + errorThrown); 
     return; 
     }, 
    statusCode: { 
     404: function() { 
      $("#console").text("404: The requested JSON file was not found."); 
     return; 
     } 
    } 
}); 
} 

//取得loggerName ...

$(document).ready(function() { 

    // Get logger info event... 
    $("#ajax").click(function() { 
    var loggerInfo = new getLoggerInfo(); 
    alert("Loggername: "+ loggerInfo.loggerName); 
}); 

});

答えて

0

AJAXは非同期である - それはデータを返さないように...次はあなたが

  1. は、データがURLに送信され$.ajax()機能を使用するときに何が起こるかの(ラフ)概要である
  2. ブラウザは続行します - 必要に応じて他のコードを実行します
  3. URL(ステップ1で呼び出された)が処理されると、successコールバックが実行されます。

ステップ3は、あなたが成功コールバックで要求を処理しなければならない1秒、10秒、5分後に

次のようになります。onthisあなたの非常に迅速な回答のため

$.ajax({ 
    url: "data.json", 
    type: "GET", 
    data: {emGetInfo: "logger"}, 
    dataType: "json", 
    success: function(response){ 
     // process here 
     loggerName = response.emGetInfo[0].loggerName; 
     alert(loggerName); 
    } 
}); 
+0

おかげで、私の最初の時間サイトとその素晴らしい...コードは正しい応答を警告しますが、私はどのようにスクリプトを呼び出した変数に値を返すのですか? –

+0

あなたができないことは、成功のコールバック内でコードを実行することです。値を返すことはできません。 – ManseUK

+0

Doh!それは奇妙だと思って何もうまくいかない!これを通常の機能に戻し、いくつかのグローバル変数を設定します。あなたの助け、素晴らしいサービスに感謝します。 –

関連する問題