我试图在按下按钮后立即执行 setInterval 函数,然后每 5 秒运行一次该函数。
为什么这有效:
$(function () {
$('button').on('mousedown', function () {
var checkUser = setInterval(function () {
}, 5000);
checkUser();
});
});
但不是这个:
$(function () {
$('button').on('mousedown', function () {
var checkUser = setInterval(function () {
}(), 5000);
});
});
最佳答案
你的第一个并不是像你想象的那样执行一个函数来启动。 Interval 返回一个 id,而不是对被调用方法的引用。控制台应该有错误。
第二个是调用函数并将函数返回的值存储为间隔。在您的情况下,它没有返回任何内容,因此它存储的是未定义的。
存储函数、引用它并调用它。
$(function () {
$('button').on('mousedown', function () {
var myFunc = function () {
};
var checkUser = setInterval(myFunc, 5000);
myFunc();
});
});
或使用超时而不是间隔。
$(function () {
$('button').on('mousedown', function () {
var myFunc = function () {
/* do stuff */
setTimeout(myFunc, 5000);
};
myFunc();
});
});
关于javascript - 立即运行 setInterval,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28946928/