2013-10-11 2 views
0

Код:Почему не задерживает() работу?

<div id="Test">test</div> 

$('#Test').delay(5000).html('').hide('slow'); 

мне нужно DIV, чтобы закрыть через 5 секунд, но он немедленно закрывается.

Что нужно изменить, чтобы оно закрывалось через 5 секунд?

ответ

1

delay() будет задерживать только методы, которые используют очередь, чтобы выполняться, как анимации(), FadeIn() и т.д.

Установите таймер, чтобы задержать выполнение последующих элементов в очереди.

Использование SetTimeout

setTimeout(function(){ 
    $('#Test').removeClass("test1").removeClass("test2").html('').hide('slow'); 
}, 5000) 

или использовать queue(), чтобы задержать выполнение последующего кода

$('#Test').delay(5000).queue(function(){ 
    $(this).html('').hide('slow'); 
}) 
+2

но почему бы не работать задержка? –

+1

Задержка @TeoLine по умолчанию - для эффектов FX (это не для отображения информации). лучший подход - это очередь. –

+0

.delay() добавляет в очередь, .html нет. –

0

Я думаю, что вы хотите, последние два метода вызовов в обратном направлении ...

<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() лишней.

+1

его не такая же последовательность, как требуется OP. –

+0

Согласовал его не тот же порядок - но я не уверен, что это было намеренно или нет. Как отмечено в связанном «потенциальном дублирующем» вопросе с использованием .queue(), на самом деле лучший подход. – scunliffe

Смежные вопросы