【问题标题】:How to apply JavaScript to bootstrap btn-group-justified to select/unselect the children button elements如何将 JavaScript 应用于引导 btn-group-justified 以选择/取消选择子按钮元素
【发布时间】:2015-11-28 09:13:17
【问题描述】:

好的,我了解 JavaScript 并未应用于整个组,因为每个按钮都是不同组的一部分,但文档说这是使用 justified with button 标签的正确方法。这不是问题,除非我需要他们被证明是合理的。

所以我的问题是:我应该如何在所有三个按钮上整体使用 JavaScript?它应该作为一个简单的单选按钮组运行。

单击一个,其他的将被取消选中。任何建议都会很棒!

HTML:

<div class="btn-group btn-group-justified" role="group" aria-label="...">
  <div class="btn-group">
    <button type="button" class="btn btn-default">Low Cost/Effeciency</button>
  </div>
  <div class="btn-group">
    <button type="button" class="btn btn-default active">Average</button>
  </div>
  <div class="btn-group">
    <button type="button" class="btn btn-default">High Cost/Effeciency</button>
  </div>
</div>

JavaScript:

$(function() {
  $('body').on('click', '.btn-group button', function (e) {
    $(this).addClass('active');
    $(this).siblings().removeClass('active');

    //other things I need to do
  })
});

【问题讨论】:

    标签: javascript jquery html twitter-bootstrap


    【解决方案1】:

    按钮元素不是兄弟元素。

    你需要选择父元素的兄弟元素。

    Working Example Here

    $(document).on('click', '.btn-group button', function (e) {
      $(this).addClass('active').parent().siblings().find('button').removeClass('active');
    });
    

    不过,正确的做法是使用属性data-toggle="buttons"

    这样做,您不需要编写任何自定义 JS。有关详细信息,请参阅我的 this old answer 解释它的工作原理。

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <link href="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet"/>
    <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
    <div class="btn-group btn-group-justified" data-toggle="buttons" role="group" aria-label="...">
        <label class="btn btn-default">
            <input type="radio" name="options" />Low Cost/Effeciency
        </label>
        <label class="btn btn-default">
            <input type="radio" name="options" />Average
        </label>
        <label class="btn btn-default">
            <input type="radio" name="options" />High Cost/Effeciency
        </label>
    </div>

    【讨论】:

    • 谢谢,这更有意义。
    猜你喜欢
    • 1970-01-01
    • 2017-02-22
    • 2013-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-01
    • 1970-01-01
    • 2015-02-27
    相关资源
    最近更新 更多