You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

项目中aria-expanded失效,导航栏下拉菜单无法展开怎么解决?

下拉菜单无法展开的排查与解决步骤

1. 补全下拉菜单的内容容器

你的代码仅包含了下拉触发按钮,但缺少实际的下拉菜单内容容器——Bootstrap需要同级存在.dropdown-menu类的元素才能正常渲染下拉面板。示例补充如下:

<ul class="list-unstyled topnav-menu float-end mb-0">
    <li class="dropdown notification-list topbar-dropdown">
        <a class="nav-link dropdown-toggle nav-user me-0 waves-effect waves-light" data-bs-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">
            <img src="@obj.ImgUrl" alt="user-image" class="rounded-circle">
            <span class="pro-user-name ms-1">
                @obj.Users.FirstName @obj.Users.LastName <i class="mdi mdi-chevron-down"></i>
            </span>
        </a>
        <!-- 新增下拉菜单内容容器 -->
        <div class="dropdown-menu dropdown-menu-end">
            <a class="dropdown-item" href="#">个人中心</a>
            <a class="dropdown-item" href="#">退出登录</a>
        </div>
    </li>
</ul>

同时修正ARIA属性:aria-haspopup应设为true,符合弹出式组件的规范要求。

2. 确认Bootstrap依赖正确引入

Bootstrap 5的下拉组件依赖Popper.js和Bootstrap自身JS文件,必须按顺序引入:

<!-- 先引入Popper.js -->
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.8/dist/umd/popper.min.js"></script>
<!-- 再引入Bootstrap JS -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.min.js"></script>

如果用本地文件,需检查路径是否正确,避免加载失败。

3. 验证父元素类名与DOM结构

确保触发按钮的父元素<li>保留.dropdown类(你的代码已包含,但需注意后续修改不要误删),这是Bootstrap识别下拉组件容器的核心标识。

4. 排查JS冲突与报错

打开浏览器开发者工具(F12)的Console面板,查看是否有JavaScript报错:

  • 若存在其他脚本覆盖Bootstrap下拉方法,需调整脚本加载顺序
  • 若使用ASP.NET等框架,需确保DOM渲染完成后再初始化Bootstrap组件

内容的提问来源于stack exchange,提问作者Shreyash Shreyash

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 06:15:11