Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQuery setTimeOut while循环_Javascript_Jquery_While Loop_Settimeout_Infinite Loop - Fatal编程技术网

Javascript JQuery setTimeOut while循环

Javascript JQuery setTimeOut while循环,javascript,jquery,while-loop,settimeout,infinite-loop,Javascript,Jquery,While Loop,Settimeout,Infinite Loop,我的大脑快要爆炸了。。为什么这不起作用?我试着用时间间隔制作一些div的动画,试着写更少的代码,但这不起作用 var cargaCont = function(){ o = 1; var animacion = function(i){ $('#page2txt'+i).animate({ height:'20' },200,function(){

我的大脑快要爆炸了。。为什么这不起作用?我试着用时间间隔制作一些div的动画,试着写更少的代码,但这不起作用

    var cargaCont = function(){
        o = 1;
        var animacion = function(i){
            $('#page2txt'+i).animate({
                height:'20'
            },200,function(){
                $('#page2img'+i).animate({
                    left:'0',
                    right:'0'
                },200,function(){
                    i++;
                    return i;
                });
            });
        }
        while(o < 3){
            setTimeout(function(){o = animacion(o);},200);
        }   
    }
var cargaCont=function(){
o=1;
变量animation=函数(i){
$('#page2text'+i).设置动画({
身高:'20'
},200,函数(){
$('#page2img'+i).设置动画({
左:'0',
右:'0'
},200,函数(){
i++;
返回i;
});
});
}
而(o<3){
setTimeout(函数(){o=animation(o);},200);
}   
}

此代码的问题:

while(o < 3){
    setTimeout(function(){o = animacion(o);},200);
} 

这使得
setTimeout
中的函数使用的
o
绑定到本地函数的
o
,而不是
cargaCont
函数的
o

我不是100%确定你到底想做什么,但我猜你基本上想循环一些动画,也许是这样:

while(o < 3){
    //o out here is from cargaCont
    (function(o){
        //override o by naming the passed variable o
        setTimeout(function(){
            o = animacion(o); //now o refers to the local o
        },200);
    }(o)); //execute inner function, passing in o
} 
var cargaCont = function(){
    var i = 1,
        animacion = function(i){
            $('#page2txt'+i).animate({
               height:'20'
           },200,function(){
               $('#page2img'+i).animate({
                   left:'0',
                   right:'0'
               },200,function(){
                   if(i < 3){
                      animacion(++i);
                   }
               });
           });
       };
    animacion(i);
};
var cargaCont=function(){
var i=1,
动物=功能(i){
$('#page2text'+i).设置动画({
身高:'20'
},200,函数(){
$('#page2img'+i).设置动画({
左:'0',
右:'0'
},200,函数(){
如果(i<3){
动物(++i);
}
});
});
};
动物(一);
};
根据您的感觉进行编辑或发布一些标记以进一步解释


干杯。

你能把加价贴出来吗?并解释期望的效果是什么?这段代码中有许多不必要的行。