setInterval()中的函数无延迟地执行

我正在制作一个jquery应用程序,通过使用setInterval()在指定的时间间隔后隐藏图像。 问题是隐藏图像function立即执行而没有延迟。

$(document).ready(function() { setInterval(change(), 99999999); function change() { $('#slideshow img').eq(0).removeClass('show'); } }); 

我在jsfiddle中测试它。

http://jsfiddle.net/wWHux/3/

您立即调用了该函数,而不是将其传递给setInterval

setInterval( change, 1500 ) – 将函数change传递给setInterval

setInterval( change(), 1500 ) – 调用函数change并将结果( undefined )传递给setInterval

你有setInterval(change(), 99999999); 最后立即调用change()函数并将其返回值传递给setInterval()函数。 您需要通过将change()包装在函数中来延迟执行change()

 setInterval(function() { change() }, 9999999); 

或者你可以通过传递setInterval()函数本身而不调用它来延迟它。

 setInterval(change, 9999999); 

要么有效。 我个人发现第一个比第二个更清楚一点意图。

你有setInterval(change(), 99999999); 它应该是setInterval(change, 99999999); 。 请参阅setInterval / setTimeout文档。 🙂

常见的错误,一直发生在我身上。 🙂

更改setInterval(change(), 99999999); to setInterval(change, 99999999);

如您所知,99999999表示99999999毫秒。