2016-10-16 3 views
0

私はasync: falseを試しましたが、何も私のために働くようです。If AYax AFTER AYAX後の電話

var user = $('#element').text(), 
    // user == 'KendrisX' 
    ref; 

$.ajax({ 
    type : 'get', 
    async : 'false', 
    url : '/memberlist?username=' + user, 
    success : function(data) { 
     if ($('#link', data).html()) ref = $('#link', data).attr('href'); 
     // ref == '/u1' 
    } 
}); 

if (ref != undefined) { 
    // Code Block here 
} 

私がやろうとしているすべては、AJAX呼び出しを実行すると、変数refがまだ定義されているかどうかを確認することです。それがあれば、私は特定のコードブロックを実行したい。このすべては、jQueryの$.each関数内で実行されます

ので、私はAJAX呼び出しでは動作しませんif文(内$(this)を使用する予定

+0

'$(「#リンク」、データ)の.html()' - 。私の知る限り、このセクションが使用されていますフロントエンドにデータを表示する理由は何ですか?それを検証したいのはなぜですか?何か不足していると思います。 –

答えて

0

非同期の使い方:jQueryの1.8で動作しません偽低いバージョン。あなたは、エラーコールバックを完全な成功を使用することができます。

別のオプションは、単に成功法にあなたの条件場合を移動し、である。

0
async : 'false', 

'false'は真の値である文字列です。falseと同じではありません。これは真偽値です。


つまり、メインスレッドの同期要求は推奨されていません。そのようにしないでください。代わりにsuccess関数で結果を処理します。

このすべてはので、私はAJAX呼び出しでは動作しませんどの(if文の中に$(this)を使用する予定jQueryの$ .each関数内で実行されます。

はい、 。それはあなただけでは正しい値を渡す必要があります(例えばbindまたは矢印機能付き)

success : function(data) { 
    if ($('#link', data).html()) ref = $('#link', data).attr('href'); 
    // ref == '/u1' 
}.bind(this) 
+0

Ac私は 'aync:false'を引用符なしで使用しています。それは動作しています。 –

+0

@ Ace1 - それは私がこの答えの最初の段落で言ったことです – Quentin

+0

私は見ましたが、私はその小さな詳細を逃したとは思えません。 私はこの全体の質問を避けることができました。これありがとう。 –