jQuery $ .getJSON和循环遍历数组正在全力以赴

时间:2015-04-23 09:53:56

标签: javascript php jquery json laravel

这是我目前的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

如何正确遍历数组,以便每次只收到一个项目?

1 个答案:

答案 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);
    }
);
});