2009-12-15 79 views

回答

28

您可以使用empty()删除<div>内容:

setTimeout(fade_out, 5000); 

function fade_out() { 
    $("#mydiv").fadeOut().empty(); 
} 

假设:

<div id="mydiv"> 
    ... 
</div> 

你可以,如果你喜欢用一个匿名函数做到这一点:

setTimeout(function() { 
    $("#mydiv").fadeOut().empty(); 
}, 5000); 

甚至:

var fade_out = function() { 
    $("#mydiv").fadeOut().empty(); 
} 

setTimeout(fade_out, 5000); 

后者有时首选,因为它污染了全局命名空间少。

+0

工作正常,但我不记得那一次的div ..我需要拆除的div内容的文字,同时保持在div本身对于新的应用...感谢 – 2009-12-16 00:07:56

+1

然后取出调用空(),只是做fadeout() – 2009-12-16 00:16:38

+0

完美..非常感谢 – 2009-12-16 00:18:48

1

您需要设置类似的setTimeout(“$(‘#ID’)。淡出(‘慢’)”,5000),但比它取决于你的代码的其余部分其他什么貌似

3
$.doTimeout(5000, function(){ 

// hide the div 
}); 
1

这应该工作:

$(document).ready(function() { 
    $.doTimeout(5000, function() { 
     $('#mydiv').fadeOut(); 
    }); 
}); 
+0

$ .doTimeout有什么优势?这是来自插件还是核心的一部分? – ScottE 2009-12-16 00:03:58

+0

请参阅http://benalman.com/projects/jquery-dotimeout-plugin/,在这种情况下,我只是使用window.setTimeout思想,并不真正值得一个插件的成本这个简单的东西 – 2009-12-16 00:26:26

3

你可以尝试.delay()

$(".formSentMsg").delay(3200).fadeOut(300); 

呼叫DIV设定延迟时间以毫秒为单位,并设置要更改的属性,在这种情况下,我使用.fadeOut()所以它可以是动画,但你也可以使用.hide()。

http://api.jquery.com/delay/

0

您可能需要再次显示DIV文本它已经消失了。 这可以在1行中完成。

$('#div_id').empty().show().html(message).delay(3000).fadeOut(300);