Django站点Bootstrap导航栏toggle按钮点击无法展开下拉菜单问题求助
问题原因
你的导航折叠失效是两个问题共同导致的:
- Bootstrap CSS和JS大版本不匹配:头部引入的是Bootstrap 4.1.3版本CSS,底部引入的却是Bootstrap 5.1.3版本JS,跨大版本的Bootstrap交互逻辑完全不兼容。
- 交互属性和版本不匹配:如果你使用Bootstrap 5,导航切换按钮的
data-toggle、data-target属性已经被废弃,替换为data-bs-toggle、data-bs-target,你当前用的是Bootstrap 4的属性,无法被Bootstrap 5的JS识别。
解决方案
你可以任选下面其中一种方案修复,不需要修改Django相关的模板逻辑:
方案1:统一使用Bootstrap 4(无需修改现有导航HTML)
直接替换底部的脚本引入代码,换成和CSS版本一致的Bootstrap 4.1.3配套JS即可:
<!-- SCRIPTS --> <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
方案2:统一使用Bootstrap 5
需要同步修改CSS引入和导航按钮的属性:
- 替换头部的Bootstrap CSS为5.1.3版本:
<!-- BOOTSTRAP CSS --> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
- 修改导航栏的切换按钮属性,将
data-*前缀改为data-bs-*:
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarTogglerDemo02" aria-controls="navbarTogglerDemo02" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button>
内容的提问来源于stack exchange,提问作者swamptiger24
相关产品推荐
相关产品推荐

