JQuery AddClass, затем удаление класса

В моем приложении Rails я отправляю запрос Ajax, когда пользователь нажимает кнопку "Сохранить", когда он отправляет запрос, я могу вернуть некоторый jQuery.

Что я хотел бы сделать, это добавить класс (сохранение), задержать и удалить класс.

Итак, я добавил следующее:

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

По какой-то причине он не работает. Что я делаю неправильно?

Ответы

Ответ 1

.delay() на самом деле для анимаций.

Используйте setTimeout()

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

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

Ответ 2

delay работает только с методами, связанными с анимацией, вы можете использовать метод queue:

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

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

Ответ 3

Если кому-то требуется более одного добавления/удаления класса,.dequeue(); также требуется для правильной работы.

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

Ответ 4

Попробуйте это, возможно:

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