Код:Почему не задерживает() работу?
<div id="Test">test</div>
$('#Test').delay(5000).html('').hide('slow');
мне нужно DIV, чтобы закрыть через 5 секунд, но он немедленно закрывается.
Что нужно изменить, чтобы оно закрывалось через 5 секунд?
Код:Почему не задерживает() работу?
<div id="Test">test</div>
$('#Test').delay(5000).html('').hide('slow');
мне нужно DIV, чтобы закрыть через 5 секунд, но он немедленно закрывается.
Что нужно изменить, чтобы оно закрывалось через 5 секунд?
delay() будет задерживать только методы, которые используют очередь, чтобы выполняться, как анимации(), FadeIn() и т.д.
Установите таймер, чтобы задержать выполнение последующих элементов в очереди.
Использование SetTimeout
setTimeout(function(){
$('#Test').removeClass("test1").removeClass("test2").html('').hide('slow');
}, 5000)
или использовать queue(), чтобы задержать выполнение последующего кода
$('#Test').delay(5000).queue(function(){
$(this).html('').hide('slow');
})
Я думаю, что вы хотите, последние два метода вызовов в обратном направлении ...
<div id="Test">test</div>
$('#Test').delay(5000).hide('slow', function(){
$(this).html('');//only when done remove the content
});
Однако, как @Royi Na mir отметил ... delay() действительно предназначен для использования в последовательности анимации ... так что сначала вам может понадобиться «фальшивая» анимация (в основном нет-op), а затем задержка.
<div id="Test">test</div>
$('#Test').css({'opacity':0.95}).fadeIn('slow').delay(5000).hide('slow', function(){
$(this).html('');//only when done remove the content
});
Это немного рубить ... заставить FadeIn анимации ... задержка ... затем скрыть медленно ... и очистить содержимое. Если вы действительно хотите сначала удалить содержимое, но это сделает анимацию hide() лишней.
его не такая же последовательность, как требуется OP. –
Согласовал его не тот же порядок - но я не уверен, что это было намеренно или нет. Как отмечено в связанном «потенциальном дублирующем» вопросе с использованием .queue(), на самом деле лучший подход. – scunliffe
но почему бы не работать задержка? –
Задержка @TeoLine по умолчанию - для эффектов FX (это не для отображения информации). лучший подход - это очередь. –
.delay() добавляет в очередь, .html нет. –