Задержка () и fadeout () Не задерживайтетритетрию () в очереди
Вопрос
Что не так в этом коде? Я пытаюсь получить этот эффект: fadeOut(500)
а также attr('class','myClass')
задерживается на 600 миллисец .. затем delay(600)
Опять и fadeIn(500)
. Отказ Задержки происходят правильно, но attr()
не задерживается, он пожаровал, когда #myDiv
все еще исчезает! : '(
$('#myDiv').fadeOut(500)
.delay(600)
.attr('class','myClass')
.delay(600)
.fadeIn(500);
Решение
То .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()
Методы доступны, которые могут сделать это немного очистить :)