我有一个简单的应用程序,它使用多个同步计时器来控制何时显示某些按钮。单击按钮将隐藏它,并重置计时器。很基本。我当然不能就此罢休……
一些按钮会干扰其他按钮的概念功能。我需要清除我设置的一些计时器,以便在单击其他某些按钮时显示这些按钮。我没有问题让我的按钮通过计时器显示和隐藏。问题是在时间到期之前清除计时器。
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);
}
任何帮助是极大的赞赏。