【发布时间】:2013-01-19 14:05:55
【问题描述】:
我正在学习延期,但无法弄清楚它是如何/为什么起作用的:
<html>
<head>
</head>
<body>
<div>
1</div>
<div>
2</div>
<div>
3</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>
$("div").each(function (i) {
$(this).delay(1000 * i).fadeOut();
}).promise().done(function () { console.log("it's done"); });
</script>
</body>
</html>
特别是:为什么我可以在每个之后调用 promise?为什么它在技术上是可行的?我已经 console.logged:
console.log($("div").each(function (i) {}));
我确实在原型中看到了 promise 方法。但是,我的每个函数都没有返回任何值,只有一个:
$(this).delay(1000 * i).fadeOut();
那么,promise 是如何与动画结果相关联的呢? (基本上是每次迭代的结果)
编辑 1:为了清楚起见,也许我应该这样写我的问题:
done 方法是如何在所有动画完成后调用的 == promise 如何与每个回调函数内部执行的动画互连。
【问题讨论】:
标签: javascript jquery jquery-deferred