jQuery animate立即得到解决

时间:2014-06-16 17:22:53

标签: jquery coffeescript promise

我在jQuery中有几个动画,并希望在它们全部完成后运行函数。我创建了promise对象并将其放在" promises bucket"中。不幸的是,我的动画正在立即得到解决。代码中是否缺少某些内容?我会在5秒钟之前将消息打印到控制台方式。

CoffeeScript中的代码

animBucket = []
animBucket.push $('#a').animate({opacity: 0.5}, 5000).promise()
animBucket.push $('#b').animate({opacity: 0.5}, 5000).promise()
$.when animBucket
  .then () ->
    console.log 'All animation done'

1 个答案:

答案 0 :(得分:2)

在阵列上使用.apply时,您需要$.when

$.when.apply null, animBucket
    .then () ->
        console.log "all done"

否则,$.when将数组视为单个已解析的值。调用.apply将数组的输入转换为varargs。