代码如下:
var autoSaveTextInterval = null;
var autosaveText = function () {
if ($("#textbox").is(':visible') && (filterID != 3 && filterID != 13 && threeTextarea == false)) {
autoSaveTextInterval = setTimeout(function () {
if (filterID != 3 && filterID != 13 && threeTextarea == false) {
document.getElementById('autosave').innerHTML = "Last saved about just now";
}
else {
clearInterval(autoSaveTextInterval);
}
}, 20000);
}
else {
clearInterval(autoSaveTextInterval);
}
}
setInterval(autosaveText, 10000);
10秒后autosaveText
函数将被调用..现在我要做的是如果autoSaveTextInterval
的条件为真,那么在20秒执行10秒间隔函数后停止执行20秒。我已经尝试了上面的代码,但没有完美地工作,因为它没有清除autoSaveTextInterval
答案 0 :(得分:1)
我正在尝试清理逻辑,最后得到以下代码。
var autosaveText = function () {
if ($("#textbox").is(':visible') && (filterID != 3 && filterID != 13 && threeTextarea == false)) {
document.getElementById('autosave').innerHTML = "Last saved about just now";
setTimeout(autosaveText, 20000);
} else {
setTimeout(autosaveText, 10000);
}
}
setTimeout(autosaveText, 10000);
说明:
这更干净,因为它不需要任何引用也不需要clearInterval
。但我不太确定这是不是你想要的。如果您所需的逻辑与此实现不同,请发表评论,我将尝试更新代码。
更新:小提琴:http://jsfiddle.net/3jd1qe1t/
请注意,小提琴会被修改用于演示目的。
filterID
。选中该复选框可启用自动保存。Disabled...
时会显示一条消息autosaveText
。