Подтвердить что ты не робот

Задержка jQuery не работает

$('.transparent').removeClass('transparent').delay(2000).addClass('not_transparent').delay(4000)

У меня есть div, который является полупрозрачным, а затем хочет переключить его на непрозрачный. Но jQuery.delay(); метод, похоже, не работает здесь. Я пробовал .fadeIn(); вместо этого, и это работает с задержкой, но это не сменяет классы.

4b9b3361

Ответ 1

.delay() используется для элементов, которые являются частью queue, например анимации. Простой addClass не поставлен в очередь.

Вы можете использовать setTimeout.

var trans = $('.transparent').removeClass('transparent');
setTimeout(function() {
    trans.addClass('not_transparent');
}, 2000);

В качестве альтернативы вы можете добавить ненужный элемент в очередь с помощью .queue(), хотя я думаю, что setTimeout будет лучше.

$('.transparent').removeClass('transparent').delay(2000).queue(function(nxt) {
      $(this).addClass('not_transparent');
      nxt();
});

Ответ 2

Я знаю, что это старый вопрос, но по-прежнему много трафика из Google, поэтому я добавлю два цента,

Вы можете использовать что-то вроде

$('.transparent').fadeIn().delay(500).queue(function(){
  $('.transparent').addClass('yourclass');
});

Ответ 3

.delay() не работает с тегом .addClass() вне функции, поэтому используйте:

delay();
function delay(){
     $('.pgtitle').delay(5000).fadeIn(0).addClass('animated bounceInDown');
}