Что-то столь же простое как:
$("#div").addClass("error").delay(1000).removeClass("error");
кажется, не работает. Какова была бы самая легкая альтернатива?
Вы можете создать новый элемент очереди, чтобы удалить class:
$("#div").addClass("error").delay(1000).queue(function(next){
$(this).removeClass("error");
next();
});
Или с помощью метода dequeue :
$("#div").addClass("error").delay(1000).queue(function(){
$(this).removeClass("error").dequeue();
});
Причина, по которой вам нужно вызвать next
или dequeue
, заключается в том, чтобы сообщить jQuery, что все готово с этим элементом в очереди и что он должен перейти к следующему.
Задержка работает в очереди. и, насколько я знаю, манипуляции с css (кроме как через animate) не ставятся в очередь.
AFAIK метод задержки работает только для числовых модификаций CSS.
Для других целей JavaScript поставляется с методом setTimeout:
window.setTimeout(function(){$("#div").removeClass("error");}, 1000);