Javascript 几秒钟后隐藏div

Javascript 几秒钟后隐藏div,javascript,jquery,timing,Javascript,Jquery,Timing,我想知道,在jquery中,我如何能够在几秒钟后隐藏一个div?比如Gmail的信息 我已尽了最大努力,但无法使其工作。这将在1秒(1000毫秒)后隐藏div setTimeout(函数(){ $('mydiv')。淡出('fast'); }, 1000); // 可能最简单的方法是使用定时器插件。然后打电话给 $(this).oneTime(1000, function() { $("#something").hide(); }); 从 (允许方法链接)使用jQuery计时器

我想知道,在jquery中,我如何能够在几秒钟后隐藏一个div?比如Gmail的信息


我已尽了最大努力,但无法使其工作。

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

setTimeout(函数(){
$('mydiv')。淡出('fast');

}, 1000); // 可能最简单的方法是使用定时器插件。然后打电话给

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


(允许方法链接)

使用jQuery计时器还允许您拥有与附加到对象的计时器关联的名称。因此,您可以将多个计时器连接到一个对象并停止其中任何一个

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

$("#myid").stopTime("mytimer2");
eval函数(及其相关函数、函数、setTimeout和setInterval)提供对JavaScript编译器的访问。这有时是必要的,但在大多数情况下,它表明存在极坏的编码。eval函数是JavaScript最被误用的特性


您可以尝试
.delay()

调用div设置延迟时间(以毫秒为单位),并设置要更改的属性,在本例中,我使用了.fadeOut(),因此可以设置动画,但也可以使用.hide()


有一种非常简单的方法可以做到这一点。

问题是.delay只会影响动画,所以您需要做的是通过给.hide()一个持续时间使其像动画一样工作

$(“#无论什么”).delay().hide(1)


通过给div一个很短的持续时间,它看起来就像普通的.hide函数一样是即时的。

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

纯粹的隐藏,一秒钟的延迟

// hide in one second
$('#mydiv').delay(1000).hide(0); 
纯粹的隐藏,没有延迟

// hide immediately
$('#mydiv').delay(0).hide(0); 
动画隐藏

// 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); 
此外,这些方法可以将队列名称或函数作为第二个参数(取决于方法)。以上所有通话和其他相关通话的文档可在此处找到: 我们可以直接使用

$('#selector').delay(5000).fadeOut('slow');

$(函数(){
$(“.hide it”).hide(7000);
});              
myDiv

只是隐藏得足够好,或者你需要它褪色吗?有没有令人信服的理由在setTimeout或setInterval上使用timers插件?我想说下载和附加jquery插件比简单地使用setTimeout要简单。我不认为这一定是一件坏事,但由于我很少在代码中使用计时器,因此在这几次中使用该插件(阅读:extra code,bloat)并不会超过成本。如果您正在编写大量需要使用计时器的代码,并且正在使用jQuery,我可以理解为什么这个插件对于保持jQuery语法非常有用……而且您在一次尝试中就非常出色地击败了疯狂的Joel Coehoorn!:)@James,当然最终结果没有什么不同,但是我认为使用
.delay()
的实现对于
jQuery
来说更“原生”和优雅。您可以用
.fadeOut('fast')
替换
.hide()
用于即时隐藏div。这更好,因为我不必使用setTimeOut,代码更容易阅读。请不要只发布代码作为答案,还要解释代码的作用以及它如何解决问题。有解释的答案通常更有帮助,质量更好,更容易吸引选票。这对我很有帮助。说明必须传递一些值以隐藏(),否则将不会触发延迟()。
// start fade out in one second, take 300ms to fade
$('#mydiv').delay(1000).fadeOut(300); 
$('#selector').delay(5000).fadeOut('slow');
<script>
      $(function() {
      $(".hide-it").hide(7000);
    });              
</script>

<div id="hide-it">myDiv</div>