如何在5秒后隐藏#results?我尝试了这个,但它不起作用。
$('#results').hide().html(data).fadeIn('slow').delay(5000).hide();
我拥有的是这个
$('#results').hide().html(data).fadeIn('slow');
答案 0 :(得分:19)
在hide()
来电时设置一段时间,它会像这样工作:
$('#results').hide().html(data).fadeIn('slow').delay(5000).hide(1);
问题是没有任何参数的hide()
只是一个立即操作。它不会通过fx队列,因此它不会在.delay(5000)
之后。但是,如果你给像.hide(1)
这样的函数一个持续时间,那么它就变成了一个动画,它会通过fx队列,因此会出现在.delay(5000)
之后。
您可以在此处查看:http://jsfiddle.net/jfriend00/wzbtU/
当提供持续时间时,.hide()将成为动画方法。
答案 1 :(得分:4)
你的意思是:
$('#results').hide().html(data).fadeIn('slow');
setTimeout(function() {
$('#results').hide();
}, 5000);
答案 2 :(得分:0)
您必须使用setTimeout
。
setTimeout("$('#results').hide().html(data).fadeIn('slow');", 5000);
.delay(5000)
不起作用的原因是因为.hide()
未包含在动画队列中。
答案 3 :(得分:0)
jQuery 的fadeOut 方法很漂亮:
$('#results').delay(3000).fadeOut('slow');