Javascript JQuery setTimeOut while循环
我的大脑快要爆炸了。。为什么这不起作用?我试着用时间间隔制作一些div的动画,试着写更少的代码,但这不起作用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(){
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);
}
});
});
};
动物(一);
};
根据您的感觉进行编辑或发布一些标记以进一步解释
干杯。你能把加价贴出来吗?并解释期望的效果是什么?这段代码中有许多不必要的行。