0

:remote => trueこれは、フォーム用の私の JavaScript です。

現在、フォームが送信されると、この関数は 1 回実行されます。(幅が5%増えます。

ただし、このアニメーションをループで実行して、ajax:success または ajax:failure コールバックを取得するまで幅が 5% ずつ増加し続け、その時点で別の関数にジャンプする必要があります。

$('#new_message').bind('ajax:loading', function() {
  $('#send_bar').animate({
    width: '+=5%'
  });
});
4

1 に答える 1

1

アニメーションを実行する関数を宣言してから、完了パラメーターで関数を渡し、それ自体が再帰的に呼び出されるようにします。

var start_animation = function() {
  $('#send_bar').animate({width: '+=5%'}, 5000, 'linear', start_animation);
}

読み込み関数で、関数を呼び出してアニメーションを開始します。

$('#new_message').bind('ajax:loading', function() {
  start_animation();
});

次に、ajax:success および ajax:failure へのバインドで、stopを呼び出します。

$('#new_message').bind('ajax:success', function() {
  $('#send_bar').stop();
});

$('#new_message').bind('ajax:failure', function() {
  $('#send_bar').stop();
});
于 2012-10-11T09:06:33.213 に答える