【问题标题】:How do I change the drop down button color when clicked Bootstrap?单击 Bootstrap 时如何更改下拉按钮的颜色?
【发布时间】:2018-11-29 00:44:07
【问题描述】:

我安装了这个 Bootstrap 下拉按钮 https://getbootstrap.com/docs/4.0/components/dropdowns/(第二个带有 "a" 元素,所以我的“按钮”实际上是一个链接)并且一切正常,除非我尝试单击按钮时更改按钮的背景颜色;它仍然是按钮附带的默认灰色以及出现的浅灰色边框。我想在单击按钮时更改背景颜色。

这是我的代码:

(只是为了`解释一下,我的 html 在 li 中,因为我使用下拉按钮作为导航的菜单项,并且我使用的是 span 而不是div 因为它只会与 span 正确对齐,而不是形成一个块。)

html:

<span class="dropdown show">

    <li>

        <a class="btn btn-secondary dropdown-toggle" href="#" role="button" 
        id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" 
        aria-expanded="false" onclick="myFunction()">Help</a>

    <span class="dropdown-menu" aria-labelledby="dropdownMenuLink">
        <a class="dropdown-item" href="#">Action</a>
        <a class="dropdown-item" href="#">Another action</a>
        <a class="dropdown-item" href="#">Something else here</a>
    </span>
    </li>
</span>

CSS:

    #color-change {
    background-color: #00ffba;
}

Javascript:

    function myFunction() {
    document.getElementById("color-change");
} 

我在网上查看并尝试了其他在单击时更改背景颜色的方法,但无济于事,我认为这可能与干扰 Javascript 的 list 元素和/或 span 元素有关,以及干扰使用 Bootstrap,但我的 Javascript 也可能是错误的。

谢谢!

`

【问题讨论】:

    标签: javascript button drop-down-menu bootstrap-4 dropdown


    【解决方案1】:

    此代码将为您工作。为您更改 ID 和颜色。

    $('body').on('click', '#id-of-button-to-change-background', function(){
    
        $(this).css('background-color', 'colour-to-change-will-go-here');
    
    })
    

    【讨论】:

    • 谢谢,我尝试了您的建议并将其放入 codepen:codepen.io/anon/pen/PaQLoB 但它仍然不起作用,我也尝试将 $('body)' 和 $(this) 替换为我的按钮类,我也尝试过使用 dropdownMenuLink id,但它仍然不起作用。
    【解决方案2】:

    您可以通过简单的 CSS 实现这一点。在标签中添加一个类。

     <a class="btn btn-secondary dropdown-toggle customButton" href="#" role="button"
           id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true"
           aria-expanded="false">Help</a>
    

    CSS

    .show > .customButton:focus{
    background: #00ffba !important ;
      box-shadow:none !important;
      border: none !important;
    
    }
    .customButton{
      box-shadow:none !important;
      border: none !important;
    }
    

    如果您希望所有 btn-secondary 在单击时都具有相同的颜色,则可以将 css 直接添加到该类,如下所示:

    .show > .btn-secondary:focus{
    background: #00ffba !important ;
      box-shadow:none !important;
      border: none !important;
    
    }
    .btn-secondary{
      box-shadow:none !important;
      border: none !important;
    }
    

    Codepen 链接:https://codepen.io/anon/pen/xzWrYr

    【讨论】:

    • 谢谢,你的代码让它改变颜色,但它与我想要的效果相反,当我点击它时按钮仍然变为灰色,但如果我再次点击它,(当下拉菜单已退出)它会变为我想要的颜色(单击它后它仍然有灰色边框)当我第一次单击它时如何让它改变颜色?中性按钮:imgur.com/heJ0EiH 点击时:@9​​87654323@ 再次点击时:@9​​87654324@ 谢谢!
    • @RGao ,我已经更新了我的原始答案,当单击按钮时,您应该从 显示类由引导程序动态添加。我还在我的原始答案中包含了一个代码笔链接。请检查一下。谢谢!!
    • @SjanLamsai 现在可以使用了,谢谢。但是,当我点击按钮并按住它仍然是深灰色时,很多人点击缓慢所以他们仍然会看到这个,这是一个问题。当我单击按钮并按住以摆脱下拉菜单时,这些按钮也会获得 100 像素的边框半径(基本上是椭圆形)。最后,我仍然无法调整填充。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-25
    • 2018-06-05
    • 2021-07-21
    • 2019-05-20
    • 2021-10-04
    • 2021-10-18
    • 1970-01-01
    相关资源
    最近更新 更多