【发布时间】:2017-11-26 22:35:59
【问题描述】:
我正在使用带有 jQuery 延迟的 setInterval。
但是 setInterval 中的 delay() 似乎没有工作,或者它没有等待 3 秒(在 setInterval 中)。
我的目标:
- 先等待 3 秒
- 打印Hello word 10
- 然后等待 2 秒淡出
- 等待 3 秒
- 打印你好字9
- 等等……
下面的 sn-p 显示它只等待 2 秒并打印..
count = 10;
// store setInterval ID in var
var interval = setInterval(function(){
// log value of count
console.log(count);
$('.output').append(
" hello world"+count+"<br>"
).hide().fadeIn(1000).delay(2000).fadeOut('slow');
if(count <= 0) {
// if count reaches 10 the clear using interval id
clearInterval(interval);
} else {
// otherwise increment count
count--;
}
}, 3000);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="output"></div>
【问题讨论】:
-
那是因为 setInterval 不等待 fadeOut 完成
-
这听起来你真的很想要承诺stackoverflow.com/questions/14220321/…
标签: javascript jquery delay setinterval