我有一个简单的应用程序,它使用多个同步计时器来控制何时显示某些按钮。单击该按钮将隐藏它,并重置计时器。很基本的。我当然不能离开它......
某些按钮会干扰其他按钮的概念功能。我需要清除我设置的一些定时器,用于在单击其他某些按钮时显示按钮。我没有问题让我的按钮显示和隐藏计时器。问题是在时间到期之前清除计时器。
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);
}
非常感谢任何帮助。