【发布时间】:2019-07-21 18:26:32
【问题描述】:
所以基本上,我在使用应该将网站更改为暗模式的按钮时遇到问题。我还有一个夜间模式,根据用户当前位置的日落之后或日出之前使网站变暗,这个夜间模式有效。所以我知道这一定是我的 js 的问题......
我已经尝试过先添加lightMode,然后删除darkMode,但也没有用...
<button
type="button"
class="btn btn-outline-secondary"
id="buttonChangeMode"
>
<i class="far fa-moon"></i>
</button>
.lightMode .app {
border: 1px solid #0b0b35;
padding: 20px 15px;
max-width: 1000px;
max-height: 2500px;
margin: 30px auto;
border-radius: 10px;
background-color: white;
}
.darkMode .app {
border: 1px solid #0b0b35;
padding: 20px 15px;
max-width: 1000px;
max-height: 2500px;
margin: 30px auto;
border-radius: 10px;
background-color: rgb(7, 8, 14);
}
function changeMode() {
let mode = document.getElementById("body");
if (mode.classList.contains("lightMode")) {
mode.classList.add("darkMode").remove("lightMode");
} else if (mode.classList.contains("lightMode")) {
mode.classList.remove("darkMode").add("lightMode");
}
}
let buttonChangeMode = document.querySelector("#buttonChangeMode");
buttonChangeMode.addEventListener("click", changeMode);
在控制台中,出现的错误是:“Uncaught TypeError: Cannot read property 'remove' of undefined 在 HTMLButtonElement.changeMode"
【问题讨论】:
-
ClassList 的方法不支持链接。但是,有workaround for that。
-
remove() 是一种方法。你不能在函数 add 上使用 remove 方法。
标签: javascript