好的,我知道
JavaScript没有应用于整个组,因为每个按钮都是不同组的一部分,但是文档说这是使用按钮标记对齐的正确方法.这不是问题,除非我需要它们是合理的.
所以我的问题是:我应该如何在所有三个按钮上使用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
})
});
最佳答案 按钮元素不是兄弟元素.
您需要选择父元素的兄弟元素.
$(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>