【发布时间】:2020-12-25 12:52:00
【问题描述】:
我有两种模式switches。首先是navbar,其次是首次访问网站时的弹出窗口。一切正常,除了在弹出模式下开关不动但机身已更改为暗模式/亮模式。
我已尝试更改每个开关的 ID,但仍然无法正常工作。 我的主要问题是,弹出窗口中的开关不动。
有人可以处理吗?我哪里做错了?
完整代码见My Codepen
<div id="modeSwitcher">
<input type="checkbox" class="checkbox" id="chk" />
<label class="label" for="chk">
<i class="fas fa-moon"></i>
<div class="ball"></div>
</label>
</div>
<!-- Popup Mode -->
<div id="popupMode">
<div class="container-fluid p-0 h-100">
<div class="row h-100">
<div class="col-12 main-content">
<div id="modeChoice">
<div class="title">
<h2>Welcome</h2>
<p>
You can switch the button from light mode<br>to dark mode
</p>
</div>
<div class="choose-mode">
<div id="modeSwitcher">
<input type="checkbox" class="checkbox" id="chk" />
<label class="label" for="chk">
<i class="fas fa-moon"></i>
<div class="ball"></div>
</label>
</div>
</div>
<div id="buttonPopupMode">
<a href="#" class="btn button-primary">UNDERSTAND</a>
</div>
</div>
</div>
</div>
</div>
</div>
window.onload = function() {
$("#popupMode").delay(3000).fadeIn(500);
if (localStorage.darkMode == "true") {
document.body.classList.toggle('dark');
document.getElementById("chk").checked = true;
} else {
document.body.classList.toggle('light');
}
};
document.getElementById("chk").addEventListener('change', () => {
document.body.classList.toggle('dark');
document.body.classList.toggle('light');
localStorage.darkMode = (localStorage.darkMode == "true") ? "false" : "true";
});
$("#buttonPopupMode .button-primary").on('click', function() {
$('#popupMode').hide();
})
【问题讨论】:
-
您重复了 id
chkid 必须是 unqiue。使用类 -
我已经在上面说过,我已经尝试为每个开关更改 id。但还是不行
标签: javascript html jquery css local-storage