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

如何实现Bootstrap下拉按钮在匹配页面URL或点击选项后更改背景颜色

如何实现Bootstrap下拉按钮在匹配页面URL或点击选项后更改背景颜色

在我的Flask web app中,我使用了Bootstrap 4的下拉按钮,其中一个按钮的HTML代码如下:

<div class="dropdown">
        <button class="btn btn-secondary dropdown-toggle" style="{{ buttoncolor }}" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
          Valdez
        </button>
        <div class="dropdown-menu" aria-labelledby="dropdownMenuLink">
          <a class="dropdown-item" href="{{ url_for('ak.valdez_stormtracker') }}">Storm Tracker</a>
          <a class="dropdown-item" href="{{ url_for('ak.valdez_seasontracker') }}">Season Tracker</a>
        </div>
      </div>

我希望当页面的URL与下拉选项中的某个URL匹配时,按钮的背景色能发生变化。

我已经在普通按钮(非下拉)上实现了这个效果,具体是通过custom.js配合自定义CSS来完成的:

普通按钮的实现方案

首先是custom.js中的代码:

// Handles the active state transition on bootstrap nav bar
    // get current URL path and assign 'active' class
    var pathname = window.location.pathname;
    console.log(pathname);

    $('.nav > li > a[href="'+pathname+'"]').children().addClass('active')

对应的自定义CSS样式:

.btn-secondary:not(:disabled):not(.disabled).active {
  background-color: var(--color);
}

普通按钮的HTML结构如下:

<li class="nav-item">
            <a href="{{ btnurl }}">
              <button class="btn btn-secondary" style="{{ buttoncolor }}">{{btntxt}}</button>
            </a>
          </li>

现在我找不到适用于下拉按钮的类似解决方案。虽然能像普通按钮那样识别当前URL是最理想的,但如果退而求其次——在点击任意下拉选项时更改按钮背景色,并在加载新URL后保留这个颜色,那也可以接受。

备注:内容来源于stack exchange,提问作者pjw

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 17:18:02