【发布时间】:2017-01-09 03:24:28
【问题描述】:
下面是我在面试中被问到的代码。
在这种情况下,开始时间和结束时间有什么区别?
我发现在这里运行它需要 12 秒,而在 this link 中运行它需要 8 秒。 .!
最令人困惑的是,在每个循环中,控制台打印淡出动画时间增加 2 秒,尽管每个 div 总共完成 2 秒。
谁能详细解释一下这里到底发生了什么?
function getMinsSecs() {
var dt = new Date();
return dt.getMinutes() + ":" + dt.getSeconds();
}
$("input").on("click", function() {
$("p").append("Start time: " + getMinsSecs() + "<br />");
$("div").each(function(i) {
console.log(1000 * (i * 2));
$(this).fadeOut(1000 * (i * 2));
});
$("div").promise().done(function() {
$("p").append("End time: " + getMinsSecs() + "<br />");
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p></p>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<input type="text" id="inp">
【问题讨论】:
-
这里有一个额外的 DIV - 查看开发者工具检查器,“控制台输出” div
-
哎呀,是的,2个额外的div:p一个在另一个里面
-
哦,每个 div 从一开始就在褪色,每个 div 都以不同的速度消失……用开发人员工具检查器检查一下,你会看到所有 div 都在一次褪色
标签: javascript jquery promise delay fadeout