setInterval() 中的函数立即执行

发布于 2024-12-11 17:36:44 字数 352 浏览 0 评论 0原文

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

$(document).ready(function() {

  setInterval(change(), 99999999);

  function change() {
    $('#slideshow img').eq(0).removeClass('show');

  }

});

我正在 jsfiddle 中测试它。

I am in the process of making a jquery application to hide an image after a specified interval of time by using setInterval(). The problem is that the hide image function executes immediately without delay.

$(document).ready(function() {

  setInterval(change(), 99999999);

  function change() {
    $('#slideshow img').eq(0).removeClass('show');

  }

});

I am testing it in jsfiddle.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

野侃 2024-12-18 17:36:44

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

您立即调用了该函数,而不是将其传递给设置间隔

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

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

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

You called the function immediately instead of passing it to setInterval.

setInterval( change, 1500 ) - passes function change to setInterval

setInterval( change(), 1500 ) - calls the function change and passes the result (undefined) to setInterval

猛虎独行 2024-12-18 17:36:44

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

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

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

setInterval(change, 9999999);

要么有效。我个人认为第一个比第二个更清楚地表达了意图。

Where you have setInterval(change(), 99999999); you end up calling the change() function immediately and passing the return value of it to the setInterval() function. You need delay the execution of change() by wrapping it in a function.

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

Or you can delay it by passing setInterval() just the function itself without calling it.

setInterval(change, 9999999);

Either works. I personally find the first one a bit clearer about the intent than the second.

笑梦风尘 2024-12-18 17:36:44

您有 setInterval(change(), 99999999); ,它应该是 setInterval(change, 99999999); 。请参阅 setInterval/setTimeout 的文档,了解原因。 :)

常见的错误,经常发生在我身上。 :)

You have setInterval(change(), 99999999); and it should be setInterval(change, 99999999);. See the documentation of setInterval/setTimeout why. :)

Common mistake, happens to me all the time. :)

冷…雨湿花 2024-12-18 17:36:44

将 setInterval(change(), 99999999); 更改为 setInterval(change, 99999999); ,

如您所知,99999999 意味着 99999999 毫秒。

Change setInterval(change(), 99999999); to setInterval(change, 99999999);

And 99999999 means 99999999 milliseconds as you known.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文