delay()
работает только на эффекты.
Из jQuery Задержка () Документация
.delay () метод лучше всего подходит для
задержка между очередями JQuery
последствия. Потому что это ограничено - это
например, не предлагает способ
отменить задержку - .delay () не является
замена для родного JavaScript
функция setTimeout, которая может быть больше
подходит для определенных случаев использования.
Поскольку addClass()
не является эффектом, вы можете включить эффект fadeIn () и использовать addclass в качестве функции обратного вызова.
var classes = ['class1', 'class2', 'class3'];
$.each(classes, function(index, ui) {
$('body').removeAttr('class').delay(1000).fadeIn(function() {
$(this).addClass(ui);
});
});