在 Web 应用程序中,我.each()
用来迭代一组项目。
在函数的主体中,我正在寻找要使用动画显示或隐藏的特定项目。
这运作良好。但是,我想在所有动画结束时触发一个函数,只有一次。
我怎样才能做到这一点?
我创建了一个jsFiddle来说明这个问题。
基本上,我有这样的事情:
<button id="x">Show</button>
<ol>
<li><span style="display:none">One</span>
</li>
<li><span style="display:none">Two</span>
</li>
<li><span style="display:none">Three</span>
</li>
<li><span style="display:none">Four</span>
</li>
</ol>
<pre id="log">
</pre>
和js:
$(function () {
$("#x").click(function () {
$("li").each(function () {
$(this).find("span").show({
complete: function () {
$("#log").append("completed\n");
}
}).promise().done(function () {
$("#log").append("done\n");
});
});
});
});
在这种情况下,“完成”和“完成”都被推送到日志元素。
当所有动画结束时,我只想调用一次“完成”函数。
我怎样才能做到这一点?
PS:我知道我的代码片段可以写成:$("li > span").show(...)
,但是这个each
结构代表了我的真实代码。
[编辑] 必须保留 .each 关键字,因为我的实际代码是用每个关键字构建的。我的片段更简单只是为了代表问题