<script>
//GET THE DATA
$.getJSON('https://api.tfl.gov.uk/line/mode/tube,overground,dlr,tflrail/status', function(data) {
var counter = 1;
console.log(data);
$.each(data, function(index,station) {
$.each(station.lineStatuses, function(index,value2) {
if (counter <= 16) {
if (station.name != 0) {
var stationName = station.name;
var stationStatus = value2.statusSeverityDescription;
var stationStatusReason = value2.reason;
$("#stationStatus").append(
$("<div>")
.addClass("row"));
$("#stationStatus").empty().append(
$("<div/>")
.addClass("stationName col-sm-6")
.append(stationName));
$("#stationStatus").append(
$("<div/>")
.addClass("stationStatus col-sm-6")
.append(stationStatus));
if (stationStatusReason != undefined) {
$("#stationStatus").append(
$("<div/>")
.addClass("stationStatusReason col-sm-12")
.append(stationStatusReason));
}
counter++;
}
}
});
});
});
</script>
我创建了一些代码来检索一些数据使用getJSON。添加延迟 - getJSON和jQuery
一旦我有数据循环显示内容。我的问题是我可以显示所有的内容,但我希望在每个循环之间添加一个延迟,因此它显示的有点像新闻动态。
我想我快到了,但我目前的形式代码只显示数组中的最后一项。如果我逐步使用devtools,它似乎在做正确的事情,但我不知道如何自动添加延迟?
我尝试使用setTimeout和类似的,但它被忽略?
可以重新格式化你的代码,包括你的setTimeout尝试?我在这里发布了重新格式化http://pastebin.com/Df3F2Y0C –
作为对你的问题的快速回答,setTimeOut设置了'将来'的超时时间,所以如果你将所有的超时设置为相同的值,那么他们会在同一时间进行处理。所以如果你想错开更新,只需增加setTimeOut *计数器 –