0

代码:

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

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

我需要 DIV 在 5 秒后关闭,但它会立即关闭。

我需要更改什么以使其在 5 秒后关闭?

4

2 回答 2

1

delay()将仅延迟使用队列执行的方法,如 animation()、fadeIn() 等

设置一个计时器来延迟队列中后续项目的执行。

使用 setTimeout

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

或者使用queue()来延迟后面代码的执行

$('#Test').delay(5000).queue(function(){
    $(this).html('').hide('slow');
})
于 2013-10-11T17:23:32.260 回答
0

我认为您希望最后两个方法调用相反...

<div id="Test">test</div>
$('#Test').delay(5000).hide('slow', function(){
    $(this).html('');//only when done remove the content
});

然而,正如@Royi Namir 指出的那样...... delay() 真的是为了在动画序列中使用......所以你可能首先需要一个“假”动画(基本上是一个无操作),然后是延迟。

<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
});

这有点骇人听闻...强制淡入动画...延迟...然后慢慢隐藏...并清除内容。如果你真的想先删除内容,你可以,但它会使 hide() 动画有点多余。

于 2013-10-11T17:25:31.283 回答