呼叫功能一段时间后但只有一次

时间:2015-03-04 07:55:22

标签: javascript

我想在javascript中只调用一次函数但是过了一段时间。

setTimeout(function(){ $('.alert').fadeOut(2000) }, 5000);

现在我正在使用这个,但是这个函数多次调用。我需要在一段时间后只打一次电话

1 个答案:

答案 0 :(得分:2)

如果你有这样的函数:

function a () {
    // do stuff
    setTimeout(function() {
        // the timeout function
    }, 5000);
}

多次调用此函数a()时。超时功能也会多次发生。

为了防止这种情况发生,你可以在其他地方设置超时功能。但你也可以使用锁机制。

var lock = false;

function a () {
    // do stuff
    if (!lock) {
        lock = true;
        setTimeout(function() {
            // the timeout function
        }, 5000);
    }
}

a(); // first call

a(); // second call

lock = false;

a(); // third call

现在第一次调用函数a时,它会执行超时函数。第二次没有。为了证明您可以控制锁定,您将看到第三个执行超时功能。

相关问题