在循环JavaScript/JQuery中运行函数

在循环JavaScript/JQuery中运行函数,javascript,jquery,Javascript,Jquery,我有一堆函数调用另一个函数。我想在一个无限循环中运行这些函数组,但却不能真正想出一个逻辑 我的代码如下所示: <script> function runAnim(x,y) { //animation code } runAnim(a,2); setTimeout(function() { $('#a').fadeOut('fast'); }, 3000); runAnim(b,4); setTimeout(function() { $('#b').fad

我有一堆函数调用另一个函数。我想在一个无限循环中运行这些函数组,但却不能真正想出一个逻辑

我的代码如下所示:

<script>

function runAnim(x,y) {
    //animation code
}

runAnim(a,2);
setTimeout(function() {
    $('#a').fadeOut('fast');
}, 3000);

runAnim(b,4);
setTimeout(function() {
    $('#b').fadeOut('fast');
}, 3000);

</script>

但这会挂断我的浏览器。我尝试实现setInterval方法,但不知道如何实现。如果你愿意,我可以发布runAnim(x,y)函数以获得更清晰的信息

更改
runAnim
方法,通过
setTimeout
包含对
runAnim
的调用,这样就可以在确保不超过最大堆栈的同时执行无限循环


更改
runAnim
方法,通过
setTimeout
包含对
runAnim
的调用,这样就可以在确保不超过最大堆栈的情况下执行无限循环


您不需要显式的无限循环,只需让函数反复调用另一个循环即可

以下是一个链接示例:

功能衰减(){
$('b').fadeIn('fast');
$('a').fadeOut('fast',fadeOut-tb);
}
函数fadeOutB(){
$('a').fadeIn('fast');
$(“#b”).fadeOut('fast',fadeOut);
}
函数停止(){
$('a,'b')。停止();
}
$(“#开始”)。单击(淡出);
$(“#停止”)。单击(停止)
div{
宽度:50px;
高度:50px;
浮动:左;
利润率:10px;
}
#a{
背景颜色:绿色;
}
#b{
背景颜色:蓝色;
}

开始

停止
您不需要显式无限循环,只需让函数反复调用另一个循环即可

以下是一个链接示例:

功能衰减(){
$('b').fadeIn('fast');
$('a').fadeOut('fast',fadeOut-tb);
}
函数fadeOutB(){
$('a').fadeIn('fast');
$(“#b”).fadeOut('fast',fadeOut);
}
函数停止(){
$('a,'b')。停止();
}
$(“#开始”)。单击(淡出);
$(“#停止”)。单击(停止)
div{
宽度:50px;
高度:50px;
浮动:左;
利润率:10px;
}
#a{
背景颜色:绿色;
}
#b{
背景颜色:蓝色;
}

开始

停止
我的建议是不要编写任何运行无限循环的逻辑,因为它会给浏览器带来问题。但是,如果您希望这样做,请执行下面的操作


创建for循环
for(var i=0;;i++){}
,然后将您的函数放入该循环中,该循环将执行无限次。

我的建议是,不要编写任何运行无限循环的逻辑,因为这将给您的浏览器带来问题。但是,如果您希望这样做,请执行下面的操作


创建for循环
for(var i=0;;i++){}
,然后将函数放入该循环中,该循环将执行无限次。

为什么需要无限循环?因此,我有几个字母随机淡入的单词,我通过divs输入这些单词(a和b)。我想让这些字母无休止地动画。为什么不在动画完成后调用函数本身中的函数呢?因此,当它完成后,只需再次调用该函数。为什么需要一个无限循环?因此,我有几个字母随机淡入的单词,我通过div输入这些单词(a和b)。我想让这些字母无休止地动画。为什么不在动画完成后调用函数本身中的函数呢?因此,当它完成后,只需再次调用该函数。
while(1) {}
function runAnim(x,y) {
    //animation code
    if ( y == 2 )
    {
       setTimeout( () => {
           runAnim(x,4);
           $('#a').fadeOut('fast'); //call the fadeout here itself
       }, 3000 );
    }
    else
    {
       setTimeout( () => {
           runAnim(x,2);
           $('#a').fadeOut('fast');
       }, 3000 );
    }
}