.delay()
влияет только на анимацию или fx
очередь (если вы не указали другую очередь специально). Имейте в виду, что цепочка и организация очередей - это две совершенно разные концепции, цепочка продолжает использовать один и тот же набор jquery, но это совершенно иная вещь, чем любые очереди событий для элементов в этом наборе.
Чтобы затронуть вызов .attr()
, необходимо добавить его в качестве обратного вызова в ту же очередь, используя .queue()
, например:
$('#myDiv').fadeOut(500)
.delay(600)
.queue(function(next) { $(this).attr('class','myClass'); next(); })
.delay(600)
.fadeIn(500);
Также обратите внимание, что есть .addClass()
, .removeClass()
и .toggleClass()
методов, которые могут сделать это немного чище:)