我试图在按下按钮后立即执行setInterval函数,然后每隔5秒运行一次该函数。
为什么这样做:
$(function () {
$('button').on('mousedown', function () {
var checkUser = setInterval(function () {
}, 5000);
checkUser();
});
});
但不是这样:
$(function () {
$('button').on('mousedown', function () {
var checkUser = setInterval(function () {
}(), 5000);
});
});
答案 0 :(得分:2)
你的第一个没有像你想象的那样执行一个功能。 Interval重新编译一个id,而不是对被调用方法的引用。控制台中应该有错误。
第二个是调用函数并存储函数返回的间隔。在你的情况下,它没有返回任何东西,所以它存储未定义。
存储功能,引用它并调用它。
$(function () {
$('button').on('mousedown', function () {
var myFunc = function () {
};
var checkUser = setInterval(myFunc, 5000);
myFunc();
});
});
或使用Timeout而不是interval。
$(function () {
$('button').on('mousedown', function () {
var myFunc = function () {
/* do stuff */
setTimeout(myFunc, 5000);
};
myFunc();
});
});