如何使用jQuery在5秒后隐藏文本?

时间:2011-09-30 00:45:11

标签: javascript jquery

如何在5秒后隐藏#results?我尝试了这个,但它不起作用。

$('#results').hide().html(data).fadeIn('slow').delay(5000).hide();

我拥有的是这个

$('#results').hide().html(data).fadeIn('slow');

4 个答案:

答案 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/


来自jQuery doc for hide()

当提供持续时间时,.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');