Задержка jQuery не работает
$('.transparent').removeClass('transparent').delay(2000).addClass('not_transparent').delay(4000)
У меня есть div, который является полупрозрачным, а затем хочет переключить его на непрозрачный. Но jQuery.delay(); метод, похоже, не работает здесь. Я пробовал .fadeIn(); вместо этого, и это работает с задержкой, но это не сменяет классы.
Ответы
Ответ 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');
}