淡入/淡出function的连续循环

我有以下函数,我想在一个连续循环上运行,我认为这对我有用,但不是这样,因为该函数只运行一次。 我不确定问题是否与方法,间隔或我的代码有关。 我对此很新。

var c = $(".test p").length; setInterval(faderepeat(c),20000); function faderepeat(c){ var i = 0; while (i<=c) { var p = $(".para"); ($(p[i]).delay(i*3000).fadeIn(2000).fadeOut(1000)); i++; } } 

将setInterval调用更改为:

 setInterval( function() { faderepeat(c); }, 20000); 

您调用它的方式,该函数运行一次,setInterval重复调用该函数的结果。

 setInterval( function() { faderepeat(c); }, 20000); // this will fix your looping issue function faderepeat(c){ var i = 0; while (i<=c) { var p = $(".para"); ($(p[i]).delay(i*3000).fadeIn(2000,function() { $(this).fadeOut(1000)); // using the callback version of this method is much cleaner }); i++; } } 

问题可能是这一行:

 setInterval(faderepeat(c),20000); 

你不能用这种方式将参数传递给回调函数,试试这个:

 setInterval(faderepeat,20000); function faderepeat(){ var c = $(".test p").length; var i = 0; while (i<=c) { var p = $(".para"); ($(p[i]).delay(i*3000).fadeIn(2000).fadeOut(1000)); i++; } } 

var c =$(".test p").lengthfaderepeat以始终获取最新值