【问题标题】:Toggled button using javascript and css class使用 javascript 和 css 类切换按钮
【发布时间】:2021-10-22 05:11:13
【问题描述】:

我正在尝试通过使用 css 类在按钮上使用切换脚本。

问题:当我点击button2 时,它会自动选择button3,这是不正确的。

一次只有一个按钮会在点击时激活。

function togbtn9() {
  $("#b1").toggleClass("blueback greyback");
  $("#b2").toggleClass("blueback greyback");
  $("#b3").toggleClass("blueback greyback");

}
.greyback {
  background-color: rgb(240, 240, 240) !important;
  color: #000000;
}

.f9 {
  font-size: 0.9em !important;
}

.noround {
  border-radius: 0px 0px 0px 0px !important;
  box-shadow: 0px 0px 4px #CCCCCC;
}

.blueback {
  background-color: rgb(10, 102, 60) !important;
  color: #FFFFFF !important;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet" />

<div class="col-12 f9">
  <div class="btn-group">
    <button type="button" id="b1" onclick="togbtn9()" class="btn blueback f9 noround">Button1</button>
    <button type="button" id="b2" onclick="togbtn9()" class="btn f9 greyback noround">Button2</button>
    <button type="button" id="b3" onclick="togbtn9()" class="btn f9 greyback noround">Button3</button>
  </div>
</div>

【问题讨论】:

    标签: javascript html jquery css bootstrap-4


    【解决方案1】:

    当您单击 Button2 时,所有按钮都会被切换。这意味着按钮 1 关闭,按钮 2 开启,按钮 3 开启。

    一种更简单的方法是从所有按钮中删除 blueback 类,然后将其应用于按下的按钮。请参阅下面的示例。

    在示例中,我还将 onclick 转换为 jQuery 事件处理程序,因此如果您添加更多按钮,以后维护起来会更容易。

    $(".btn").on("click",togbtn9);
    
    function togbtn9() {
      $(".blueback").removeClass("blueback");
      $(this).addClass("blueback");
    }
    .greyback {
      background-color: rgb(240, 240, 240) !important;
      color: #000000;
    }
    
    .f9 {
      font-size: 0.9em !important;
    }
    
    .noround {
      border-radius: 0px 0px 0px 0px !important;
      box-shadow: 0px 0px 4px #CCCCCC;
    }
    
    .blueback {
      background-color: rgb(10, 102, 60) !important;
      color: #FFFFFF !important;
    }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet" />
    
    <div class="col-12 f9">
      <div class="btn-group">
        <button type="button" id="b1" class="btn blueback greyback f9 noround">Button1</button>
        <button type="button" id="b2" class="btn f9 greyback noround">Button2</button>
        <button type="button" id="b3" class="btn f9 greyback noround">Button3</button>
      </div>
    </div>

    【讨论】:

    • 嗨,一切都很好,只有一个查询,当离开按钮 1 背景变白而不是灰背。你能告诉我如何解决这个问题吗?
    • 是的,只需要将greyback 类添加到Button1。我也更新了示例。
    猜你喜欢
    • 2011-07-02
    • 1970-01-01
    • 2019-02-15
    • 2011-07-20
    • 1970-01-01
    • 2022-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多