第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

2 setTimeouts 未正確清除 - 如何以正確的方式重置?

2 setTimeouts 未正確清除 - 如何以正確的方式重置?

泛舟湖上清波郎朗 2021-11-25 15:55:57
將嘗試解釋我在這里要做的事情。我有 2 個標志,我想在每個 setTimeout 函數(shù)后切換 1 個類"show"出于某種原因,重置超時無法正常工作。第一個函數(shù)在 5 秒后觸發(fā),第二個函數(shù)在 8 秒后觸發(fā)。我想重置這些,因為我不希望在完成正確的“X”秒數(shù)之前觸發(fā)該功能。let logo1 = document.querySelector('.logo-1');let logo2 = document.querySelector('.logo-2');function firstLogo() {    console.log('First logo');    logo1.classList.add('show');    logo2.classList.remove('show');    setTimeout(firstLogo, 5000);}function secondLogo() {    console.log('Second logo');    logo1.classList.remove('show');    logo2.classList.add('show');    setTimeout(secondLogo, 8000);}setTimeout(firstLogo, 8000);setTimeout(secondLogo, 5000);有人可以幫忙嗎?
查看完整描述

2 回答

?
ITMISS

TA貢獻1871條經(jīng)驗 獲得超8個贊

你可以使用這樣的東西:


var myVar;


function myFunction() {

  myVar = setTimeout(function(){ alert("Hello"); }, 3000);

}


function myStopFunction() {

  clearTimeout(myVar);

}

該clearTimeout會防止與的setTimeout()來執(zhí)行設(shè)定功能。希望這可以幫助。


查看完整回答
反對 回復(fù) 2021-11-25
?
料青山看我應(yīng)如是

TA貢獻1772條經(jīng)驗 獲得超8個贊

你會在超時之間得到一些奇怪的交互,例如

  1. 開始時,計時器將設(shè)置為 5 秒和 8 秒

  2. 5 秒時:

    1. 將顯示 logo1

    2. 徽標 2 將被隱藏

    3. 該函數(shù)將在另外 5 秒內(nèi)運行

  3. 8 秒時:

    1. 將顯示徽標 2

    2. 標志 1 將被隱藏

    3. 該功能設(shè)置為在 8 秒后再次運行

  4. 10 秒后,第一個函數(shù)再次運行,因此顯示徽標 1

  5. 15 秒后,第一個函數(shù)再次運行,標志 1 已顯示

  6. 16 秒時,第二個函數(shù)再次運行,顯示徽標 2

  7. 20 秒后,第一個函數(shù)再次運行,顯示徽標 1

  8. 在 24 秒時,第二個函數(shù)再次運行,顯示徽標 2

  9. 25 秒后,第一個函數(shù)再次運行,顯示徽標 1

  10. 30 秒后,第一個函數(shù)再次運行,已顯示徽標 1

  11. 32 秒時,第二個函數(shù)再次運行,顯示徽標 2

  12. 等等…

也許您希望徽標 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>


查看完整回答
反對 回復(fù) 2021-11-25
  • 2 回答
  • 0 關(guān)注
  • 149 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號