2 回答

TA貢獻1871條經(jīng)驗 獲得超8個贊
你可以使用這樣的東西:
var myVar;
function myFunction() {
myVar = setTimeout(function(){ alert("Hello"); }, 3000);
}
function myStopFunction() {
clearTimeout(myVar);
}
該clearTimeout會防止與的setTimeout()來執(zhí)行設(shè)定功能。希望這可以幫助。

TA貢獻1772條經(jīng)驗 獲得超8個贊
你會在超時之間得到一些奇怪的交互,例如
開始時,計時器將設(shè)置為 5 秒和 8 秒
5 秒時:
將顯示 logo1
徽標 2 將被隱藏
該函數(shù)將在另外 5 秒內(nèi)運行
8 秒時:
將顯示徽標 2
標志 1 將被隱藏
該功能設(shè)置為在 8 秒后再次運行
10 秒后,第一個函數(shù)再次運行,因此顯示徽標 1
15 秒后,第一個函數(shù)再次運行,標志 1 已顯示
16 秒時,第二個函數(shù)再次運行,顯示徽標 2
20 秒后,第一個函數(shù)再次運行,顯示徽標 1
在 24 秒時,第二個函數(shù)再次運行,顯示徽標 2
25 秒后,第一個函數(shù)再次運行,顯示徽標 1
30 秒后,第一個函數(shù)再次運行,已顯示徽標 1
32 秒時,第二個函數(shù)再次運行,顯示徽標 2
等等…
也許您希望徽標 2 顯示 5 秒,然后徽標 1 顯示 3 秒,然后徽標 2 顯示 5 秒,依此類推。
在這種情況下,您可以使用setTimeout 的適當設(shè)置從另一個函數(shù)調(diào)用一個函數(shù)。由于默認是顯示徽標,我已將show更改為hide,例如
let logo1 = document.querySelector('.logo-1');
let logo2 = document.querySelector('.logo-2');
function firstLogo() {
console.log('Hiding first logo');
logo1.classList.toggle('hide');
logo2.classList.toggle('hide');
setTimeout(secondLogo, 3000);
}
function secondLogo() {
console.log('Hiding second logo');
logo1.classList.toggle('hide');
logo2.classList.toggle('hide');
setTimeout(firstLogo, 5000);
}
firstLogo();
.hide {
display: none;
}
<span class="logo-1">logo 1</span><span class="logo-2 hide">logo 2</span>
添加回答
舉報