【发布时间】:2015-12-17 15:52:01
【问题描述】:
所以,我将一些字符串加载到一个名为消息的数组中。我想在没有消息显示的半秒内循环浏览消息。我的代码应该这样做,但无论出于何种原因,它都没有。根本没有文字显示。
这是我的代码:
function NextElement()
{
var x = messages.shift();
messages.push(x);
return x;
}
function doer()
{
$("p.message").text(NextElement());
}
function doer2()
{
$("p.message").text("");
}
$( document ).ready(function()
{
setInterval( doer,1000);
setTimeout(function() {}, 500);
setInterval( doer2,1000);
});
如果如果删除此行
$("p.message").text("");
消息显示,但半秒后不消失。
我正在查看 this page 以了解超时的工作原理,也许我误解了。似乎它的工作方式与 Java/C# 中的 thread.sleep() 不同
【问题讨论】:
-
展示你的
html结构就好了 -
2 个间隔计时器基本上同时启动和运行。因此,每条消息可能会在显示后立即被删除。
-
为什么会这样?我以为这就是 setTimeout(function() {}, 500);正在注意将它们隔开。
-
html 结构是一个带有“消息”类的空 p 元素,我认为它不值得展示。
-
@AlexanderRyanBaggett 目前,超时是调用一个空函数,定时器不会自动堆叠,所以没有影响。要延迟它的开始,必须在提供给超时的
function内设置间隔——setTimeout(function () { setInterval(doer2, 1000); }, 500);
标签: javascript jquery google-chrome