0

我有一个简单的应用程序,它使用多个同步计时器来控制何时显示某些按钮。单击按钮将隐藏它,并重置计时器。很基本。我当然不能就此罢休……

一些按钮会干扰其他按钮的概念功能。我需要清除我设置的一些计时器,以便在单击其他某些按钮时显示这些按钮。我没有问题让我的按钮通过计时器显示和隐藏。问题是在时间到期之前清除计时器。

var addMuTrfOrOIATimer;
var timerName;

funcAddTimer("addMuTrfOrOIATimer", '#trafficOrOIA', muTrfOrOIATimer);

$('#muInACall').click(function () {
                muInACall = true;
                $('#muInACall').hide();
                funcAddTimer("addMUNotesTimer", '#muAddNotes', muAddNotesTimer);
                funcAddTimer("addMUStartTransportTimer", '#muStartTransport', muStartTransportTimer);
                if (selfOrDisClear === 1) {
                    funcAddTimer("addMUClearSelfTimer", '#muClearSelf', muSelforDisClearTimer);
                } else {
                    funcAddTimer("addMUDisClearTimer", '#muDisCLearUnit', muSelforDisClearTimer);
                }
                funcClearTimer("addMuTrfOrOIATimer");
            });

因此,所有东西都被称为。您可以看到我在哪里尝试清除函数外设置的计时器。

var funcAddTimer = function (timerName, buttonName, timeToHide) {
    console.log("Starting timer " + timerName);
    timerName = setTimeout(function () {
        $(buttonName).show();
    }, timeToHide);
};

在上面你可以看到我将我想要的计时器名称作为 timerName 传递,然后在下面调用函数时我再次将我想要清除的计时器作为 timerName 传递。在我的控制台中,名称现在被正确传递,但计时器没有被清除。

var funcClearTimer = function (timerName) {
    console.log("About to clear timer " + timerName);
    clearTimeout(timerName);
}

任何帮助是极大的赞赏。

4

0 回答 0