Javascript在循环,ajax,jquery中暂停问题

我正在尝试创建一个简单的动画.长话短说,我有一个20个小div和一个div之外的列表.我想在当时的大div中显示五个小div.理想情况下,我会每5秒获得一组接下来的5个div.

我正在使用
jquery ajax函数来创建小div,这里是代码:

$(document).ready(function(){
        var amount=0;
         $.ajax({
             type: "GET",
             url: "SampleServiceIncidentList.xml",
             dataType: "xml",
             success: function(xml){

                            //creates divs within GadgetMain div, works fine.

                                      });
                            amount = $("#gadgetMain").children().size(); //counts how many small divs there are
                            $("#testText").append("amount of children:"+amount); //and displays it in a test field
                            divideFeed();
             }//close success
         }); //close $.ajax(


        function divideFeed(){  //divides the set of small divs into groups 
            var limit = 5;
            var pagesNo = Math.ceil((amount/limit));
            var minimum=0; 
            var maximum;
            var i=0;
            while (i<pagesNo)
            {               
                minimum= i*limit;
                maximum=minimum+limit;                  


                //
                // PROBLEM HERE
                //
                populate(minimum, maximum);

                i++;
            }                   
        }

        function populate(minimum, maximum){
            $("#gadgetMain div").addClass('hidden'); //hides all small divs
            $("#testText").append('<br/>min: '+minimum+' max: '+maximum); //prints current group of divs (0-5; 5-10 etc)
            $("#gadgetMain div").slice(minimum,maximum).removeClass('hidden');  
            }

});

所以,问题是我不能让它等待5秒钟来显示我感兴趣的一组div.我知道它正确地划分了div – 当我提醒最小值和最大值时,它改变了内容每当我关闭警报时,外部div.
但我找不到暂停功能的方法.

我会非常感谢一些帮助,这让我很生气

最佳答案 你不想暂停这个功能;相反,您希望将控制权交还给浏览器并让它在一段时间后回拨给您.
window.setTimeout功能就是这样做的. (还有相关的
window.setInterval,但我通常更喜欢setTimeout.)

它需要一些心理逻辑反转,但它非常像是在进行Ajax调用 – 你需要一些东西,然后放手让浏览器在你得到它时给你回电话.

例如:

function doSomething(x) {

    runner();

    function runner() {
        console.log("x = " + x);
        --x;
        if (x > 0) {
            window.setTimeout(runner, 1000);
        }
    }
}

doSomething(10);

……从每秒一次减少到10次. doSomething几乎立即返回,但是跑步者每秒都会被召回一次,直到它停止重新安排自己.

点赞