这是我目前的JS代码:
$(function(){
$.getJSON("/get_slideshow_messages",
function(data){
setInterval(function(){
$.each(data, function(i, item) {
console.log(item.message);
});
}, 5000);
}
);
});
我正在制作一个简单的幻灯片,并且对url的调用以以下形式返回一个Laravel雄辩的对象:
return SlideshowMessages::all();
如果我控制日志'数据',则返回:
Object, Object, Object]
0:
Objectcreated_at: null
id: "1"
message: "test1"
updated_at: null
__proto__: Object
1: Object
2: Object
length: 3
如何正确遍历数组,以便每次只收到一个项目?
答案 0 :(得分:3)
每次调用间隔时,您需要保留一个更改的计数器,而不是使用每个计数器。我没有测试过这个,因为我没有你的数据集 - 但理论上这应该有用。
$(function(){
$.getJSON("/get_slideshow_messages",
function(data){
var currentSlide = 0;
var nextSlide = function () {
//Loop back around
if (!data[currentSlide]) currentSlide = 0;
console.log(data[currentSlide].message);
//Increase our counter
currentSlide++;
};
//render the first slide straight away
nextSlide();
//Set up our interval to render them every 5 seconds
setInterval(nextSlide, 5000);
}
);
});