簡體   English   中英

Bootstrap:選擇下拉項目時導航鏈接不會隱藏

[英]Bootstrap: nav-link does not get hidden when dropdown-item is selected

Following is what I would like to achieve - when a dropdown-item from navbar gets selected, complete BOTH of the following 2 actions:

  • Go 到具有目標 id 的 div
  • 將導航欄卷起至初始 state(將其隱藏回完全卷起的上狀態)

事實證明,我只能做一個或另一個,但不能同時做。 有人可以幫助提供有關我如何實現這兩點的指導嗎? 我相信第一個下拉項目錨應該這樣做,但是由於某種原因,它不會 go 在它卷起導航欄后指向 targetId。 僅當我刪除data-toggle="collapse"data-target=".navbar-collapse.show" (這是第二個錨點顯示的內容)時,錨點才會將我帶到目標,但導航欄不會卷起.

 <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css"> <nav class="navbar navbar-dark bg-dark fixed-top"> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsExampleDefault" aria-controls="navbarsExampleDefault" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarsExampleDefault"> <ul class="navbar-nav mr-auto"> <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" href="" id="dropdown01" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Menu</a> <div class="dropdown-menu shadow rounded" aria-labelledby="dropdown01"> <a class="dropdown-item" href="#targetId" data-toggle="collapse" data-target=".navbar-collapse.show">nav-link does get hidden, but it doesn't hit the target</a> <a class="dropdown-item" href="#targetId">Hits the target, but the nav-link does not get hidden</a> </div> </li> </ul> </div> </nav> <:-- navbar ends here --> <div id="targetId">Content</div> <script src="https.//code.jquery.com/jquery-3.4.1.slim.min:js"></script> <script src="https.//cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min:js"></script> <script src="https.//stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>

非常感謝您的幫助,我很感激!

您可以為此使用Javascript

 document.querySelectorAll('.custom_collapse').forEach(cur => { cur.addEventListener('click', () => { document.querySelector('.navbar_collapse').classList.remove('show'); }); });
 #targetId { /* JUST FOR SEE TARGET */ margin-top: 120vh; }
 <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css"> <nav class="navbar navbar-dark bg-dark fixed-top"> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsExampleDefault" aria-controls="navbarsExampleDefault" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse navbar_collapse" id="navbarsExampleDefault"> <ul class="navbar-nav mr-auto"> <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" href="#" id="dropdown01" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Menu</a> <div class="dropdown-menu shadow rounded" aria-labelledby="dropdown01"> <a class="dropdown-item custom_collapse" href="#targetId">nav-link does get hidden, but it doesn't hit the target</a> <a class="dropdown-item custom_collapse" href="#targetId">Hits the target, but the nav-link does not get hidden</a> </div> </li> </ul> </div> </nav> <:-- navbar ends here --> <div id="targetId">Content</div> <script src="https.//code.jquery.com/jquery-3.4.1.slim.min:js"></script> <script src="https.//cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min:js"></script> <script src="https.//stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM