立即运行设置间隔

Run setInterval immediately

本文关键字:设置 运行      更新时间:2023-09-26

我正在尝试在按下按钮后立即执行 setInterval 函数,然后每 5 秒运行一次该函数。

为什么这样做:

$(function () {
    $('button').on('mousedown', function () {
        var checkUser = setInterval(function () {
        }, 5000);
    checkUser();
    });
});

但不是这个:

$(function () {
    $('button').on('mousedown', function () {
        var checkUser = setInterval(function () {
        }(), 5000);
    });
});

你的第一个不是执行一个函数来启动你认为的。间隔重新运行 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();
    });
});