【发布时间】:2022-11-03 03:21:24
【问题描述】:
我有一个用 Bootstrap 制作的下拉菜单。我在下拉菜单图标上实现了一个 jQuery toggleClass,它改变了点击时的图标。通常,它应该在菜单关闭时显示汉堡图标,然后在菜单打开时变为 X 图标。但这里的问题是,如果菜单点击得太快(双击),情况就会相反(即菜单在关闭时显示 X 图标,在打开时显示汉堡图标)。我不想那样。这是代码sn-p。
$("span.toggler").click(function() {
$("#toggler-icon").toggleClass("fa-bars fa-times");
})
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.0/css/all.min.css" integrity="sha512-xh6O/CkQoPOWDdYTDqeRdPCVd1SpvCA9XXcUnZS2FmJNp1coAFzvtCN9BmamE+4aHK8yyUHUSCcJHgXloTyT2A==" crossorigin="anonymous" referrerpolicy="no-referrer" />
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
<div class="container-fluid">
<a class="navbar-brand" href="#">Hi</a>
<span class="toggler">
<span id="toggler-icon" class="fa-solid navbar-toggler fa-bars fa-2x text-white" data-bs-toggle="collapse"
data-bs-target="#navbarSupportedContent"></span>
</span>
<div class="collapse text-white navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="#">
<span class="fa-solid fa-home"></span> Dashboard </a>
</li>
</ul>
</div>
</div>
</nav>
<script src="https://code.jquery.com/jquery-3.6.1.min.js"
integrity="sha256-o88AwQnZB+VDvE9tvIXrMQaPlFFSUTR+nldQm1LuPXQ=" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/js/bootstrap.bundle.min.js"></script>
有什么办法可以防止这种情况发生吗?
【问题讨论】:
-
为什么要添加自己的点击处理程序,而不是使用 Bootstrap 的内置导航处理程序?
-
Bootstrap 的处理程序不会切换图标。
标签: javascript html jquery twitter-bootstrap