首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >.delay()和.setTimeout()

.delay()和.setTimeout()
EN

Stack Overflow用户
提问于 2011-09-14 04:19:24
回答 5查看 54.2K关注 0票数 19

根据.delay()上的jQuery文档,

对于队列jQuery效果之间的延迟,.delay()方法是最好的。因为它是有限的-例如,它没有提供一种取消延迟的方法-.Delay()不是JavaScript的原生setTimeout函数的替代品,后者可能更适合某些用例。

有没有人可以详述一下?什么时候使用.delay()更合适,什么时候使用.setTimeout()更好

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-09-14 04:26:06

我认为你发布的内容真的很说明问题。

对包括动画在内的jQuery效果使用.delay()

setTimeout()最适合用于其他任何事情。例如,当您需要在某个经过的时间触发事件时。

票数 27
EN

Stack Overflow用户

发布于 2011-09-14 04:32:38

据我所知,.delay()专门用于在给定jQuery队列中的方法之间添加延迟。例如,如果要在1秒内将图像淡入视图,使其在5秒内可见,然后再花一秒钟将其淡出视图,则可以执行以下操作:

代码语言:javascript
复制
$('#image').fadeIn(1000).delay(5000).fadeOut(1000);

在这种情况下,.delay()使用起来更直观,因为它专门用于延迟给定jQuery队列中的事件。另一方面,setImeout()是一种本机JavaScript方法,并不是显式用于队列队列的。如果您希望在单击按钮后1秒弹出一个警报框,您可以执行以下操作:

代码语言:javascript
复制
function delayAlert() {
    var x = setTimeout("alert('5 seconds later!')", 5000);
}

<input type="submit" value="Delay!" onclick="delayAlert();" />
票数 6
EN

Stack Overflow用户

发布于 2011-09-14 04:28:39

您可以将delay用于动画,例如:

代码语言:javascript
复制
$('.message').delay(5000).fadeOut();

您还可以使用timeOut延迟动画的开始,例如:

代码语言:javascript
复制
window.setTimeout(function(){
  $('.message').fadeOut();
}, 5000);

如您所见,在动画中使用delay比使用setTimeout更容易。

使用setTimeout可以延迟几乎所有内容,但使用delay只能延迟动画。不是动画的方法不受delay的影响,所以在隐藏元素之前不会等待一段时间,它会立即隐藏它:

代码语言:javascript
复制
$('.message').delay(5000).hide();
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7407935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档