gpt4 book ai didi

javascript - 带有 jQ​​uery 代码链接的 Bootstrap 按钮在多次单击后不更新按钮文本

转载 作者:行者123 更新时间:2023-11-28 14:38:37 24 4
gpt4 key购买 nike

我正在创建一个 Bootstrap 网站,我想要一个按钮来打开“深色模式”。我已经设法对导航栏执行此操作,这很好,但是按钮本身在多次点击后不会改变。

var darkMode = false;

function toggleDarkMode() {

if (!darkMode) {

darkMode = true;
$("#darkMode").removeClass("btn-dark").addClass("btn-light").text("Light Mode");
$("nav").removeClass("navbar-light bg-light").addClass("navbar-dark bg-dark");

} else {

darkMode = false;
$("#darKMode").removeClass("btn-light").addClass("btn-dark").text("Dark Mode");
$("nav").removeClass("navbar-dark bg-dark").addClass("navbar-light bg-light");

}

}
<!doctype html>

<html lang="en">

<head>

<meta charset="utf-8">

<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">

<title>Home</title>

</head>

<body>

<nav class="navbar sticky-top navbar-light bg-light navbar-expand-lg">

<a class="navbar-brand" href="#">Jack</a>

<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation">

<span class="navbar-toggler-icon"></span>

</button>

<div class="collapse navbar-collapse">

<ul class="navbar-nav">

<li class="nav-item active">

<a class="nav-link" href="#">Home</a>

</li>

<li class="nav-item dropdown">

<a class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Tools</a>

<div class="dropdown-menu" aria-labelledby="navbarDropdown">

<a class="dropdown-item active" href="#">Space Invaders</a>

</div>

</ul>

<ul class="nav justify-content-end">

<li class="nav-item">

<button class="btn btn-dark" type="button" onclick="toggleDarkMode()" id="darkMode">Dark Mode</button>

</ul>

</div>

</nav>

<div class="container">

<div class="jumbotron vertical-center bg-light">

<h1 class="display-4">Space Invaders</h1>
<p class="lead">I made a game of Space Invaders recently. You can play it right here, on my website!</p>
<hr class="my-4" />
<a class="btn btn-success btn-lg" href="#" role="button">Play!</a>

</div>

</div>

<script src="https://code.jquery.com/jquery-3.3.1.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"></script>

<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>

</body>

</html>

如果您在全屏模式下运行上面的代码片段并多次按下按钮,您会看到导航栏改变颜色,按钮改变颜色,按钮中的文本也会改变。但是,单击一次后,文本会变为“Light Mode”并且不会改变,颜色也不会改变,但是导航栏仍然会改变。

为什么会这样?在我的 JavaScript/jQuery 代码中,您可以看到更改先应用到按钮,然后再应用到导航栏,但按钮在第一次按下后没有变化。

为什么会这样?我该如何解决?

最佳答案

您在以下语句中的选择器不正确:

$("#darKMode").removeClass("btn-light").addClass("btn-dark").text("Dark Mode");

将其更改为:

$("#darkMode").removeClass("btn-light").addClass("btn-dark").text("Dark Mode");

关于javascript - 带有 jQ​​uery 代码链接的 Bootstrap 按钮在多次单击后不更新按钮文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53201967/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com