0

このトピックは、stackoverflow で以前に議論されたことを知っています。しかし、すべての結果が私の問題を解決するのに役立つわけではありません。

次のように「フォーム」jQueryプラグインを使用します。

$(document).ready(function() {
$('#myForm').ajaxForm({
        data: { Ajax: '1' },
        beforeSubmit:  beforeSEND,  // pre-submit callback
        success:       resultHANDLE  // post-submit callback
        });
    });

function beforeSEND () {
    $('#myForm').fadeTo(0, 0.5);
    $("textarea").addClass('loading');
    $("textarea").animate({backgroundPositionX: 0},1500});  
}

function resultHANDLE (responseText) {
    // Do somethig with the result
}

beforeSEND 関数では、背景画像がテキストエリアに添付され、左から右に移動します。プログレスバーのようなもの。

私の問題:アニメーションが終了したかどうかに関係なく、Ajaxリクエストが発生し、結果が処理されます。アニメーションが終了するまで JavaScript を強制的に待機させ、その後にリクエストを送信するにはどうすればよいですか?

助けてくれて本当にありがとうございます!!

4

2 に答える 2

1

さまざまなアニメーション関数から「完了」コールバックを使用します。

完全な型: Function() アニメーションが完了したら呼び出す関数

次のようなことができます:

$('#myForm').fadeTo(0, 0.5, function() { 
    $("textarea").addClass('loading');
    $("textarea").animate({backgroundPositionX: 0}, 1500, function() {
       $('#myForm').ajaxForm({
        data: {Ajax:'1'},
        success:       resultHANDLE
        });
    });
  });
});
于 2013-06-16T21:08:09.993 に答える