20

私の Rails アプリケーションでは、ユーザーが [保存] ボタンをクリックすると Ajax リクエストを送信し、リクエストを送信すると、jQuery を返すことができます。

私がやりたいのは、クラスを追加して(保存して)、遅延してからクラスを削除することです。

だから、私はこれを追加しました:

$('.button').addClass('saving').delay(2000).removeClass('saving');

何らかの理由で、機能していません。私は何を間違っていますか?

4

5 に答える 5

37

.delay()は実際にはアニメーション用です。

setTimeout()を使用する

$('.button').addClass('saving');

setTimeout(function () { 
    $('.button').removeClass('saving');
}, 2000);
于 2013-01-21T21:35:38.600 に答える
13

delayアニメーション関連のメソッドでのみ機能します。次のメソッドを使用できますqueue

$('.button').addClass('saving').delay(2000).queue(function( next ){
    $(this).removeClass('saving'); 
    next();
});

http://jsfiddle.net/Rp6Xw/44/

于 2013-01-21T21:41:33.430 に答える
4

クラスの複数の追加/削除が必要な場合は、.dequeue(); 適切に機能することも必要です。

$('.button').addClass('saving').delay(2000).queue(function(){
   $(this).removeClass('saving'); 
   $(this).dequeue();
});
于 2015-05-16T12:17:33.010 に答える
1

これを試してみてください:

$('.button').addClass('saving').delay(2000, function() {
    $(this).removeClass('saving')
});
于 2013-01-21T21:37:45.760 に答える