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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

LocalStorage 沒(méi)有被保存(Vanilla JS)?

LocalStorage 沒(méi)有被保存(Vanilla JS)?

慕尼黑5688855 2022-12-29 09:37:09
我是新來(lái)的(通常是編碼),但每個(gè)人都說(shuō)一旦你有問(wèn)題并且無(wú)法在 Stackoverflow 中找到答案,你應(yīng)該問(wèn),但我總是發(fā)現(xiàn)這個(gè)問(wèn)題可能太愚蠢了。問(wèn)題是,我試圖為明暗模式設(shè)置一個(gè)切換器并且它工作正常,但是一旦你刷新頁(yè)面,主題更改就不會(huì)被保存。我發(fā)現(xiàn)使用 JavaScript,您可以通過(guò)使用“l(fā)ocalStorage.setItem()”在本地存儲(chǔ)該更改,但它并沒(méi)有像我預(yù)期的那樣工作。我將嘗試提供盡可能多的細(xì)節(jié):我為我的 body 標(biāo)簽創(chuàng)建了兩個(gè) css 類:“dark”和“l(fā)ight”,每個(gè)類都有自己的顏色 css 變量。注意:我沒(méi)有兩個(gè) body 標(biāo)簽,這只是為了顯示我必須在兩個(gè)類之間切換。<body class='light'>(all the content)</body><body class='dark'>(all the content)</body>從一個(gè)到另一個(gè)的更改由帶有 css 類“.slider”的切換器觸發(fā),每次單擊時(shí)都會(huì)調(diào)用它:const switchBtn = document.querySelector('.slider');switchBtn.addEventListener('click', () => {if(document.body.classList.contains('light')) {        document.body.classList.replace('light', 'dark');    }    else    {        document.body.classList.replace('dark', 'light');    };     });直到此時(shí),一切都從一個(gè)變成了另一個(gè)。最后,我添加了一種嘗試通過(guò)修改/利用(或我認(rèn)為的)以前的功能來(lái)將其存儲(chǔ)在本地的方法:let darkTheme = localStorage.getItem('dark');switchBtn.addEventListener('click', () => {    darkTheme = localStorage.getItem('dark'); //Trying update the info stored about the darkTheme        if(document.body.classList.contains('light') && darkTheme == null) {        document.body.classList.replace('light', 'dark');        localStorage.setItem('darkTheme', 'enabled');    }    else    {        document.body.classList.replace('dark', 'light');        localStorage.setItem('darkTheme', null);    };     });此時(shí),我可以在 Chrome 的應(yīng)用程序 > 本地存儲(chǔ)中看到,每次單擊時(shí),它都會(huì)更改主題,并且還會(huì)將鍵的值從“已啟用”更改為 null,反之亦然,但是一旦我刷新頁(yè)面,它返回到我的“淺色”主題,盡管該鍵仍處于“啟用”狀態(tài)。事實(shí)上,此時(shí)我可以再次點(diǎn)擊打開深色主題,顯然,鍵的值保持不變;但如果我再次單擊它,如預(yù)期的那樣,它會(huì)返回到空值(淺色模式)。
查看完整描述

1 回答

?
浮云間

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超4個(gè)贊

這是因?yàn)閷?shí)際更改僅在點(diǎn)擊事件中完成,您需要?jiǎng)?chuàng)建一個(gè)在頁(yè)面加載時(shí)調(diào)用的事件,并在該函數(shù)中從本地存儲(chǔ)讀取并根據(jù)它更改 css。您不需要事件,只需剪切或復(fù)制點(diǎn)擊事件函數(shù)中的所有代碼并將其粘貼到文檔的最后(當(dāng)然在腳本標(biāo)簽內(nèi))

或者更好的是打電話

switchBtn.dispatchEvent(新事件(“點(diǎn)擊”))

還有兩個(gè) body 標(biāo)簽可能會(huì)有問(wèn)題我建議切換到 div


查看完整回答
反對(duì) 回復(fù) 2022-12-29
  • 1 回答
  • 0 關(guān)注
  • 110 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

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