我是新手。
如何在一段時間內呼叫函式,比如 3000 毫秒?我試過 setInterval 和 setTimeout 但它們不起作用。
if (budgeting === '' || budgeting.indexOf('e') > -1 || budgetValue < 0) {
let errorHandler = document.createElement('div');
let textErrorHandler = document.createTextNode('Oops! The balance you entered is invalid. Try again!')
errorHandler.style.width = '500px';
errorHandler.style.height = '20px';
errorHandler.style.background = 'coral';
errorHandler.style.float = 'left';
errorHandler.appendChild(textErrorHandler);
document.body.append(errorHandler);
}
以上是我目前的代碼。我想要做的是顯示一個錯誤訊息框 3 秒(3000 毫秒),但我希望它只在每次發生錯誤時顯示,即只顯示一次。
uj5u.com熱心網友回復:
顯示錯誤時,設定超時以在間隔后再次隱藏它。如果設定超時時出現超時,請將其清除并設定一個新的。
下面是一個基本的實作。“顯示錯誤”按鈕可以根據需要多次單擊,它只會顯示一條訊息,一次只設定一個超時,并且僅在最后一次單擊后停留指定的時間間隔:
let showError = (() => {
let timeoutID;
return () => {
let el = document.getElementById('err0');
el.style.visibility = 'visible';
// Clear timeout if one might be running
if (timeoutID) clearTimeout(timeoutID);
// Set timer for 1,000 ms (1 second), clear timeoutID when finished
timeoutID = setTimeout(()=>{
el.style.visibility = 'hidden';
timeoutID = null;
}, 1000);
};
})();
#err0 {
visibility: hidden;
color: red;
}
<button onclick="showError()">Show error</button>
<span id="err0">Error</span>
uj5u.com熱心網友回復:
此代碼可以作業:
setInterval(() => {console.log("work")}, 3000);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/421387.html
標籤:
上一篇:我需要通過我的代碼進行解釋,我們需要在哪里定義init方法并宣告“self”。如何在每種情況下呼叫函式在我的代碼中給出
