Ответ 1
.delay() на самом деле для анимаций.
Используйте setTimeout()
$('.button').addClass('saving');
setTimeout(function () {
$('.button').removeClass('saving');
}, 2000);
В моем приложении Rails я отправляю запрос Ajax, когда пользователь нажимает кнопку "Сохранить", когда он отправляет запрос, я могу вернуть некоторый jQuery.
Что я хотел бы сделать, это добавить класс (сохранение), задержать и удалить класс.
Итак, я добавил следующее:
$('.button').addClass('saving').delay(2000).removeClass('saving');
По какой-то причине он не работает. Что я делаю неправильно?
.delay() на самом деле для анимаций.
Используйте setTimeout()
$('.button').addClass('saving');
setTimeout(function () {
$('.button').removeClass('saving');
}, 2000);
delay
работает только с методами, связанными с анимацией, вы можете использовать метод queue
:
$('.button').addClass('saving').delay(2000).queue(function( next ){
$(this).removeClass('saving');
next();
});
Если кому-то требуется более одного добавления/удаления класса,.dequeue(); также требуется для правильной работы.
$('.button').addClass('saving').delay(2000).queue(function(){
$(this).removeClass('saving');
$(this).dequeue();
});
Попробуйте это, возможно:
$('.button').addClass('saving').delay(2000, function() {
$(this).removeClass('saving')
});