我在下面的脚本中遇到了一些问题。
为了解释背景,完整脚本从JSON提要中获取数据,如果自上次检查后它已经更新,它会更改地图上的标记并向名为updata []的数组添加一行,这很简单
JSON刷新完成后,我想在屏幕底部的小型通知div内显示每个刷新项目的通知1秒钟,然后消失。该过程应该重复,直到updata []为空。
任何想法我做错了什么?
<script type='text/javascript'>
//updata[] is populated by JSON in the full version, but for now...
var updata=["Site A Updated at 00:20"," Site B Updated at 00:22"," Site C Updated at 00:24"];
var val=0;
var max=updata.length+1;
function addtodiv()
{
document.getElementById('alarms').innerHTML = '<span>'+window.val+':'+window.updata[window.val]+'</span>'
setTimeout(cleardiv(), 1000); // refresh in 1 secs
}
function cleardiv()
{
window.val++;
document.getElementById('alarms').innerHTML = '<span> </span>'
if (window.val==window.max)
{
window.val=0;
window.updata=[];
} else {
setTimeout(addtodiv(), 200); // refresh in 0.2 secs
}
}
addtodiv();
</script>
答案 0 :(得分:1)
setTimeout
接受函数引用作为第一个参数。所以改变你的代码:
setTimeout(cleardiv(), 1000);
到此:
setTimeout(cleardiv, 1000);
...
setTimeout(addtodiv, 200);
您不想立即调用函数cleardiv()
,只需提供参考。