以下のコードでは、 'one'と 'two'を警告する必要があります。 .button
を押すと、「1」だけが警告されます。 var got
は.button
関数に返されていません。あなたの変数got
が非同期的に(すなわち、あなたはJSONコールバック関数の外でそれにアクセスすることはできません)あなたのJSONのリターン機能にスコープ、プラスJSONロードされるためだ戻り値jquery関数
$('.button').live('click',function() {
var got = fetchvalue('100');
if(got==1) {
alert('two');
}
});
function fetchvalue(id) {
$.getJSON('/fetchvalue.php?id='+id+'&w=1',function(data) {
alert('one');
var got=1;
});
return got;
}
これはgetJSONで関数として動作しません。 ajax呼び出しが完了すると、呼び出しは非同期に呼び出されます。これは、元のコードの問題の1つです。 – joshuahealy
あなたのコメントを反映するよう編集しました。これを指摘してくれてありがとうございます。 –