Jquery setInterval() 不起作用

标签 jquery function

我正在尝试创建一种幻灯片。

问题:

function slides(x) {
      $("#irack").stop().animate({"left": x}, 20);
 };
setInterval(slides(-30),300);

此代码仅将 div 向左移动 1 次。

为什么它不每 300 毫秒移动一次 div ?

最佳答案

您需要将代码包装在函数中定期运行:

function slides(x) {
      $("#irack").stop().animate({"left": x}, 20);
};
setInterval(function() {
    slides(-30);
}, 300);

您的意思是真的 setInterval ?这种情况将会持续发生,大约每 300 毫秒一次。如果您希望它只发生一次,请使用 setTimeout相反。

更新:如果您想稍后取消间隔,则需要将句柄保存到变量中:

// Somewhere appropriate, have a variable for the handle
var handle = 0; // 0 = not running

...

// Starting:
handle = setInterval(...);

...

// Stopping:
if (handle != 0) {
    clearInterval(handle);
}
handle = 0;

请注意,在未设置句柄时,请使用 00setInterval 的无效返回值,因此您可以依赖它。 (如果您愿意,也可以使用 undefinednull,但请务必检查它们。)

关于Jquery setInterval() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4555656/

相关文章:

javascript - 使用 jQuery 将一个 <ul> 中的 <li> 项附加到新的 <ul>

jquery - 溢出 :auto in jqgrid not working after upgrading jquery from 1. 6.2 到 3.2.1

c - “返回”作为函数指针数组中的函数

javascript - 为空输入验证 TinyMCE

jquery - 动态向对话框添加按钮

php - Jquery .change 函数使用复选框多次触发

c - 将数组传递给c中的函数

jquery检查返回值是否包含字符串

c++ - 使用 C++ void 函数操作 vector 数组

c - 我在 C 中以正确的方式划分吗?