2016-12-28 6 views
0

私のスコープの外にある私のプログラムのデータにアクセスするだけで、私の助けてください。JavaScript内のスコープ外のInstagramデータにアクセスする

function suatrootCallback(suatroot){ 

    // code to handle suatroot/data.data 

} 

$(document).ready(function(){ 

      var apiurl = "https://api.instagram.com/v1/users/4322593457/media/recent/?access_token=4322593457.15d3a7f.13779606843446ab834b0e8512412d4a&count=5&callback=?"; 
      $.getJSON(apiurl, function (data) { 

       var suatroot = data.data; // do not create global variable 
       suatrootCallback(suatroot); // call the callback 

       $.each(suatroot, function (key, val) { 

        var itemobj = val.images.low_resolution.url; 
        var hrefobj = val.link; 
        var captobj = val.caption.text; 
         data = captobj; //Can I access this??????? 
        var suatpaket = "<a target='_blank' href='"+hrefobj+"'><img src='" + itemobj + "'/><br>"+captobj+"<br></a>"; 
        $(".instagram").append(suatpaket); 
       }); 
      }); 
}); 
+0

put Console.log(suatroot); $(document).ready()の末尾 – Kenny

+0

Javascriptは、Ajaxリクエストの応答に従わない。行ごとに実行します。だから、$ .getJsonの後にjavascriptが待って、あなたのコードとsuatroot変数のConsolo.Log行に渡され、ここでは定義されていません。 – Mehmet

答えて

0

が賢明のようにパラメータとしてsuatrootを受け入れる関数を作成し、私のため正常に動作しています応答後に。

$(document).ready(function() { 
    var apiurl = "https://api.instagram.com/v1/users/4322593457/media/recent/?access_token=4322593457.15d3a7f.13779606843446ab834b0e8512412d4a&count=5&callback=?"; 
    $.getJSON(apiurl, function (data) { 
     suatroot = data.data; 
     $.each(suatroot, function (key, val) { 
      var itemobj = val.images.low_resolution.url; 
      var hrefobj = val.link; 
      var captobj = val.caption.text; 
      data = captobj; 
      callbackInstagram(data); //accessed here 
      //window.data = data  also if you want to access if globally after initailized 
      var suatpaket = "<a target='_blank' href='"+hrefobj+"'><img src='" + itemobj + "'/><br>"+captobj+"<br></a>"; 
      $(".instagram").append(suatpaket); 
     }); 
    }); 
}); 



function callbackInstagram (data) { 
    console.log(data); 
} 

希望します。ありがとう

+0

そして、私は関数callbackInstagram(data){ console.log(data)にアクセスできます。 } –

+0

@AnupChaudhary、できません。 AJAXリクエストは非同期です。 –

0

あなただけinitalizedされた後、Instagramのデータにアクセスすることができますので、より良いあなたが関数を呼び出すことができます。すべてが

$(document).ready(function() 
    { 
      var apiurl = "https://api.instagram.com/v1/users/4322593457/media/recent/?access_token=4322593457.15d3a7f.13779606843446ab834b0e8512412d4a&count=5&callback=?"; 
      $.getJSON(apiurl, function (data) { 

        suatroot = data.data; 
       $.each(suatroot, function (key, val) { 

        var itemobj = val.images.low_resolution.url; 
        var hrefobj = val.link; 
        var captobj = val.caption.text; 
         data = captobj; //Can I access this??????? 
        var suatpaket = "<a target='_blank' href='"+hrefobj+"'><img src='" + itemobj + "'/><br>"+captobj+"<br></a>"; 
        $(".instagram").append(suatpaket); 
       }); 
      }); 
     }); 
Console.log(suatroot); //undefined here I want object 
+0

そして、私は関数callbackInstagram(data){ console.log(data)にアクセスできます。 } –

+0

この関数を 'callbackInstagram()'として呼び出すだけで、実際にそのデータで何が必要かを説明することができます。 –

関連する問題