js在setinterval里写setinterval 在第二遍调用外层函数时,里层函数每次循环两遍

后来改成setTimeout也是如此 代码如下

     loadList: function (u) {
        function rotaT(u){
            $.ajax({
                type:"get",
                url:u,
                dataType:"json",
                success:function(data){
                    var str = '';
                    for (var i = 0; i < data.data.length; i++) {
                        str += '<div class="row clearall"><span class="box1">'+data.data[i].name+'</span><span class="box2">'+data.data[i].time+'</span><span class="box3">'+data.data[i].content+'</span><span class="box4">'+data.data[i].id+'</span></div>'
                    };
                    $('.mrb_table .tbody').html(str);
                    function scroll(){
                        $(".tbody").animate({"margin-top":"-40px"},function(){
                            $(".tbody .row:eq(0)").appendTo($(".tbody"));
                            $(".tbody").css({"margin-top":0})
                        });
                        setTimeout(scroll,5000);
                    };
                    scroll();
                },
                error:function(){
                    console.log(1);
                }
                
            });
            
            setTimeout(function(){rotaT(u)},100000);
        }
        rotaT(u);
    },

请教大神我该如何处理

阅读 1.6k
1 个回答

你的scroll方法不应该定义在外面吗?你每次ajax都去定义一次scroll方法?讲道理这种渲染dom之后的操作只要设置一个setTimeout(0)就应该OK了的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题