几秒钟后隐藏div

我想知道,如何在jQuery我能隐藏一个div几秒钟后? 就像Gmail的消息一样。

我已经尽了最大的努力,但无法让它工作。

这会在1秒(1000毫秒)后隐藏div。

setTimeout(function() { $('#mydiv').fadeOut('fast'); }, 1000); // <-- time in milliseconds 

如果您只想隐藏而不褪色,请使用hide()

你可以试试.delay()

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

调用div设置延迟时间(以毫秒为单位),并设置要更改的属性,在这种情况下,我使用了.fadeOut(),因此可以animation,但也可以使用.hide()。

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

有一个非常简单的方法来做到这一点。

问题是.delay只会影响animation,所以你需要做的就是让.hide()像一个animation一样给它一个持续时间。

$("#whatever").delay().hide(1);

通过给它一个很短的持续时间,它就像普通的.hide函数一样。

 $.fn.delay = function(time, callback){ // Empty function: jQuery.fx.step.delay = function(){}; // Return meaningless animation, (will be added to queue) return this.animate({delay:1}, time, callback); } 

http://james.padolsey.com/javascript/jquery-delay-plugin/

(允许链接的方法)

jquery提供了多种方法来以定时方式隐藏div,不需要设置,稍后清除或重置间隔定时器或其他事件处理程序。 这里有几个例子。

纯粹的隐藏

 // hide in one second $('#mydiv').delay(1000).hide(0); 

animation隐藏

 // start hide in one second, take 1/2 second for animated hide effect $('#mydiv').delay(1000).hide(500); 

消退

 // start fade out in one second, take 300ms to fade $('#mydiv').delay(1000).fadeOut(300); 

此外,这些方法可以将队列名称或函数作为第二个参数(取决于方法)。 所有上述呼叫和其他相关呼叫的文档可以在这里find: https : //api.jquery.com/category/effects/

使用jQuery定时器还可以让你有一个与附加到对象的定时器相关的名字。 所以你可以附加几个定时器的对象,并停止任何一个。

 $("#myid").oneTime(1000, "mytimer1" function() { $("#something").hide(); }).oneTime(2000, "mytimer2" function() { $("#somethingelse").show(); }); $("#myid").stopTime("mytimer2"); 

eval函数(及其相关函数,setTimeout和setInterval)提供对JavaScript编译器的访问。 这有时是必要的,但在大多数情况下,这表示存在极其糟糕的编码。 eval函数是JavaScript中滥用最多的function。

http://www.jslint.com/lint.html

可能最简单的方法是使用定时器插件。 http://plugins.jquery.com/project/timers然后调用类似;

 $(this).oneTime(1000, function() { $("#something").hide(); });