为什么不能在Bootstrap按钮上覆盖CSS背景颜色?

14w*_*wml 5 css jquery twitter-bootstrap

我想要发生什么

在此输入图像描述

实际发生了什么

在此输入图像描述

我想切换red-background类,因此,当鼠标悬停在button-bullet,它改变了background-color#FCC1C5.

我不想使用,.btn.button-bullet:hover因为我有一些jQuery逻辑,当屏幕上只有一个子弹元素时,禁止显示删除按钮.

出于某种原因,当我toggleClass("red-background"),没有任何东西出现.

我想可能是因为在CSS,我设定.btn.button-bulletbackground-colortransparent.所以,如果这是问题,我如何覆盖background-colorjQuery?

HTML

<div class="worksheet-problems">
  <div class="row">
    <div class="col-lg-7">
      <div class="form-group">
        <div class="input-group input-group-lg worksheet-problem">
          <div class="input-group-btn">
            <button type="button" class="btn btn-default button-bullet"> <span class="glyphicon glyphicon-one-fine-dot" aria-hidden="true"></span> </button>
          </div>
          <input type="text" name="Worksheet-Problem" class="form-control" placeholder="Problem..." aria-label="Write worksheet problem here">
          <div class="input-group-btn">
            <button type="button" class="btn btn-default button-add" aria-label="Add"> <span class="glyphicon glyphicon-plus-sign" aria-hidden="true"></span> </button>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

CSS

.red-background{
  background-color: #FCC1C5;
}
/*get rid of Boostrap default grey for buttons*/
.btn.button-add, .btn.button-bullet{
  background-color: transparent;
}
Run Code Online (Sandbox Code Playgroud)

jQuery的

$(document).ready(function() {
  $(".worksheet-problems").on("mouseenter mouseleave", ".button-bullet", function() {
    if ($(".worksheet-problems").children().length > 1) {
      $(this).children(".glyphicon").toggleClass("glyphicon-one-fine-dot");
      $(this).toggleClass("red-background");
      $(this).children(".glyphicon").toggleClass("glyphicon-minus-sign");
    }
  });
});
Run Code Online (Sandbox Code Playgroud)

的jsfiddle

max*_*max 2

问题:您的red-background班级的特异性低于.btn.button-bullet.

解决方案(添加更多特异性并将其放置在具有透明背景的选择器之后):

.btn.button-add, .btn.button-bullet {
  background-color: transparent;
}
.btn.red-background {
  background-color: #FCC1C5;
}
Run Code Online (Sandbox Code Playgroud)