Вы не можете сделать это с delay
, потому что это влияет только на очередь эффектов. Он не приостанавливает выполнение более позднего кода, если он не реализован с использованием очереди.
Вам нужно сделать это с setTimeout
:
$('#sampleID').delay(2000).fadeOut(500, function() {
setTimeout(function() {
$(this).addClass('aNewClass');
}, 2000);
});
При этом используется обратный вызов complete
, равный fadeOut
, и затем устанавливается функция для выполнения в течение 2 секунд в будущем.