# .delay()

所属分类：特效 > 自定义 英文文档：.delay()

## .delay( duration [, queueName ] )返回: jQuery

描述: 设置一个延时来推迟执行队列中后续的项。

- #### 添加的版本: 1.4.delay( duration [, queueName ] )

  - duration
    类型: Integer
    一个整数，指示的毫秒数，用于设定下个队列推迟执行的时间。
  - queueName
    类型: String
    一个作为队列名的字符串。默认是动画队列 `fx`。标准的效果队列。

在jQuery1.4中性增加的，`.delay()`方法允许我们将队列中的函数延时执行。它既可以推迟动画队列中函数的执行，也可以用于自定义队列。只有队列中连续的事件会延迟; 例如，不带参数的 `.show()` 或者 `.hide()`不会延迟，因为他们没有使用效果队列

延时时间（duration参数）是以毫秒为单位的，数值越大，动画越慢，不是越快。字符串 `'fast'` 和 `'slow'` 分别代表200和600毫秒的延时。

使用标准效果列队，举个例子，我们可以在 `<div id="foo">` 的 `.slideUp()` 和 `.fadeIn()` 动画之间设置800毫秒的延时:

1 |
    $('#foo').slideUp(300).delay(800).fadeIn(400);

当这句语句执行的时候，这个元素会以300毫秒的卷起动画，接着暂停800毫秒，最后有400毫秒的淡入动画。

> `.delay()`是用来在jQuery动画效果和类似队列中是最好的。但是，由于其本身的限制，比如无法取消延时——`.delay()`，它不是JavaScript的原生 setTimeout函数的替代品，这可能是更适合某些使用情况。

## 例子:

#### 隐藏再显示两个div。其中绿色的div在显示之前，有800毫秒的延时。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
    <!DOCTYPE html><html><head>  <style>div { position: absolute; width: 60px; height: 60px; float: left; }.first { background-color: #3f3; left: 0;}.second { background-color: #33f; left: 80px;}</style>  <script src="https://code.jquery.com/jquery-latest.js"></script></head><body> <p><button>Run</button></p><div class="first"></div><div class="second"></div><script>    $("button").click(function() {      $("div.first").slideUp(300).delay(800).fadeIn(400);      $("div.second").slideUp(300).fadeIn(400);    });</script> </body></html>

#### Demo: