Bootstrap框架下Dropdown Button下拉按钮无法正常工作问题咨询
问题根因
你的Bootstrap JS脚本加载顺序错误,你将bootstrap.bundle.min.js放在了<body>标签内所有DOM元素的最前方,脚本执行时页面的下拉按钮DOM节点还未完成渲染,无法绑定对应的点击触发事件,因此下拉功能失效。
修复方案
有两种可直接落地的修正方式,二选一即可:
- 方案1:将JS脚本标签移动到
<body>标签的最末尾,放在所有页面DOM内容之后,保证浏览器先渲染完下拉按钮等元素,再执行JS绑定事件 - 方案2:不改动脚本位置,给现有的script标签添加
defer属性,让脚本自动等待DOM全部加载完成后再执行
修正后完整代码示例
<head> <!-- Required meta tags --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <!-- Bootstrap CSS --> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-KyZXEAg3QhqLMpG8r+8fhAXLRk2vvoC2f3B09zVXn8CA5QIVfZOJ3BCsw2P0p/We" crossorigin="anonymous"> <title>Consult</title> </head> <body> <div class="container"> <div class="row"> <div class="col-1 col-sm-1 col-md-1 col-lg-1 col-xl-1 col-xxl-1"></div> <div class="col-10 col-sm-10 col-md-10 col-lg-10 col-xl-10 col-xxl-10"> Category: <div class="dropdown"> <button class="btn btn-secondary dropdown-toggle col-12 col-sm-12 col-md-12 col-lg-12 col-xl-12 col-xxl-12" type="button" id="dropdownMenuButton1" data-bs-toggle="dropdown" aria-expanded="false"> Dropdown button </button> <ul class="dropdown-menu" aria-labelledby="dropdownMenuButton1"> <li><a class="dropdown-item" href="#">Action</a></li> <li><a class="dropdown-item" href="#">Another action</a></li> <li><a class="dropdown-item" href="#">Something else here</a></li> </ul> </div> </div> <div class="col-1 col-sm-1 col-md-1 col-lg-1 col-xl-1 col-xxl-1"></div> </div> </div> <!-- Bootstrap Bundle with Popper 移到body末尾 --> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-U1DAWAznBHeqEIlVSCgzq+c9gqGAJn5c/t99JyeKa9xxaYpSvHU5awsuZVVFIhvj" crossorigin="anonymous"></script> </body>
内容的提问来源于stack exchange,提问作者Gabriel Augusto
相关产品推荐
相关产品推荐

