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