【发布时间】:2021-08-04 19:03:21
【问题描述】:
我最近一直在尝试制作暗/亮模式功能,但我真的很困惑出了什么问题。
我做了三个函数:toggleTheme(),它检查暗模式是否打开,如果是,它运行 lightTheme()。否则,它运行 darkTheme()。我知道 toggleTheme 正在工作,所以一定是 light 和 darkTheme 功能没有按预期工作。这是我的代码:
var vuey = new Vue({
el: "#main",
data: {
darkModeStatus: "Off"
}
});
var themeColors = {
lightModeBg: "#ddd",
darkModeBg: "#303030"
}
function toggleTheme() {
if (vuey.darkModeStatus == "On") {
lightTheme();
} else {
darkTheme();
}
}
function lightTheme() {
$("h1"), $("h2"), $("h3"), $("h4"), $("h5").css("color", "black");
document.body.style.backgroundColor = themeColors.lightModeBg;
vuey.darkModeStatus = "Off";
}
function darkTheme() {
$("h1"), $("h2"), $("h3"), $("h4"), $("h5").css("color", "white");
document.body.style.backgroundColor = themeColors.lightModeBg;
vuey.darkModeStatus = "On";
}
body {
background-color: #ddd;
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="description" content="A clock website I'm making to improve my web development skills" />
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<title>Clock</title>
</head>
<body>
<div id="main">
<div id="settings">
<h1>ok</h1>
<button id="themeButton" onclick="toggleTheme()">Dark Mode: {{ darkModeStatus }}</button>
</div>
</div>
</body>
</html>
除了 vuey.darkModeStatus 更新之外,什么都没有发生。 我该如何解决这个问题?
【问题讨论】:
-
我很确定这不是 jquery 的工作方式
$("h1"), $("h2"), $("h3"), $("h4"), $("h5").css("color", "black");,它只会将最后一个 h5 变为黑色。你想要的是这种格式$("h4, h5").css("color", "black"); -
非常感谢。您可以将其发布为答案,以便我将其标记为解决方案吗?
-
我还链接到多个选择器 jquery doc,如果您有兴趣可以阅读
标签: javascript html jquery vue.js