人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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/1件

▽最新の回答へ

1 ● 匿名回答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);
 });
}

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


匿名回答1号さんのコメント
あ、違う。こうだ。 >|javascript| $("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); }); } }); ||< クロージャのこと忘れてた。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ