代码:
<div id="Test">test</div>
$('#Test').delay(5000).html('').hide('slow');
我需要在5秒后关闭DIV,但它会立即关闭。
我需要更改什么才能在5秒后关闭?
答案 0 :(得分: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');
})
答案 1 :(得分:0)
我认为你想要反向最后两个方法调用......
<div id="Test">test</div>
$('#Test').delay(5000).hide('slow', function(){
$(this).html('');//only when done remove the content
});
然而,正如@Royi Namir所指出的那样......延迟()真的意味着在动画序列中使用......所以你可能首先需要一个“假”动画(基本上是无操作)然后是延迟。
<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()动画变得多余。