Q:

jQuery AddClass then removing a class

In my Rails application, I send an Ajax request when the user hits the Save button, when it sends the request, I can return some jQuery.
What I'd like to do is add a class (saving), have a delay and then remove the class.
So, I added this: 
$('.button').addClass('saving').delay(2000).removeClass('saving');

For some reason, it isn't working. What am I doing wrong?

A:

.delay() is actually for animations.
Use setTimeout()
$('.button').addClass('saving');

setTimeout(function () { 
    $('.button').removeClass('saving');
}, 2000);

A:

delay only works with animation-related methods, you can use queue method:
$('.button').addClass('saving').delay(2000).queue(function( next ){
    $(this).removeClass('saving'); 
    next();
});

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

A:

If someone needs more than one adding/removing of the class,  .dequeue(); is also requered to function properly.
$('.button').addClass('saving').delay(2000).queue(function(){
   $(this).removeClass('saving'); 
   $(this).dequeue();
});

