匿名質問者
匿名質問者匿名質問者とは「匿名質問」を利用して質問した質問者。
「匿名質問」では、ユーザー名を公開せずに匿名の質問ができます。
詳しくはこちら

javascriptでreturnの値が戻ってこない

どうしたら戻ってきますか
階層が深いから?初心者なので分かりやすく教えていただけるとありがたいです。
一部↓

$("p").click(function()
{
var data1 = "風景aaaaaaaaa";
var data1 = data1.replace("風景",taga(風景));

});
function taga(stitle){
$.getJSON("http://gdata.youtube.com/feeds/api/videos?lr=ja&vq=" +stitle + "&max-results=10&alt=json", function(data)
{
var img = data.feed.entry[1].media$group.media$thumbnail[0].url;
return img;
});
}

回答の条件
  • 1人50回まで
  • 13歳以上
  • 登録:2013/09/16 20:59:17
  • 終了:2013/09/23 21:00:07

ベストアンサー

匿名回答1号 No.1

匿名回答1号「匿名質問」を利用した質問に回答すると「匿名回答○号」と匿名で表示されます。
「匿名質問」では、ユーザー名を公開せずに匿名の質問ができます。
詳しくはこちら
2013/09/17 10:07:45

 こうですね。

$("p").click(function()
{
  var data1 = "風景aaaaaaaaa";
  taga(風景);
});
function taga(stitle){
  $.getJSON("http://gdata.youtube.com/feeds/api/videos?lr=ja&vq=" +stitle + "&max-results=10&alt=json", function(data)
    {
      var img = data.feed.entry[1].media$group.media$thumbnail[0].url;
      data1 = data1.replace("風景",img);
    });
}

 getJSONは非同期通信なので、returnが実行されるころにはクリックイベントの処理がすべて終わってしまっています。

匿名回答1号

 あ、違う。こうだ。

$("p").click(function()
{
  var data1 = "風景aaaaaaaaa";
  taga(風景);
  function taga(stitle){
    $.getJSON("http://gdata.youtube.com/feeds/api/videos?lr=ja&vq=" +stitle + "&max-results=10&alt=json", function(data)
      {
        var img = data.feed.entry[1].media$group.media$thumbnail[0].url;
        data1 = data1.replace("風景",img);
      });
  }
});

 クロージャのこと忘れてた。

2013/09/17 10:09:49

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません