Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Удалить добавленый класс спустя 5 секунд (https://javascript.ru/forum/events/66254-udalit-dobavlenyjj-klass-spustya-5-sekund.html)

smart-create 03.12.2016 21:50

Удалить добавленый класс спустя 5 секунд
 
Добрый вечер! Не могу справиться с простой казалось бы задачей. Прошу помощи.

Есть скрипт для валидации формы:

$("form#client_form").submit(function(e){
	e.preventDefault();
	var f = this,
        s = $(f.elements).last(),
        e = s.end().slice(0, -1).removeClass('input-error').filter(function() {
            return !$.trim(this.value)
        });
    if(e.length) s.addClass('btn-error'), e.addClass('input-error');
	else {
		s.prop('disabled', 1);
        s.end().not(s);
		$.ajax({
			type: "post",
			url: "main_c/client",
			data: $(f).serialize(),
			success: function(data){
				f.reset();
				s.prop('disabled', 0);
				s.removeClass('btn-error');
				s.addClass('btn-success');
				e.removeClass('input-error');
			}
		});
	}
});


Здесь к кнопке добавляются классы "btn-success" в случае если форма заполнена и наоборот.

Нужно сделать что бы эти классы удалялись сами по себе спустя 5 секунд. Подскажите пожалуйста как это правильно организовать

Coriolan161 03.12.2016 22:04

smart-create,
Только это нужно положить туда где добавляешь и удаляешь классы
setTimeout(function () {
   // или добавить
   s.removeClass('btn-success')
 }, 5000);

Rise 04.12.2016 07:03

smart-create, в jquery стиле делается так:
s.addClass('btn-success').delay(5000).queue(function(){ $(this).removeClass('btn-success').dequeue() });

smart-create 05.12.2016 08:16

Всем, спасибо за помощь


Часовой пояс GMT +3, время: 15:20.