在循环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 );
}
}