Bootstrap - 存在多个按钮时的数据切换属性

时间:2012-07-07 11:35:27

标签: jquery css twitter-bootstrap

我有几个按钮。当用户点击任何按钮时,我想给他一个点击按钮的印象。

这是代码:

<table>
<thead>
<tr>
<th><button class="btn btn-danger" >Today</button></th>
<th><button class="btn btn-danger" >Tomorrow</button></th>
<th><button class="btn btn-danger" >DayAfterTomorrow</button></th>
</tr>
</thead>
</table>

当我只有一个按钮时,这就有效:

<button class="btn" data-toggle="button">Today</button>

如果用户明天点击,则数据切换属性仍保留为今日按钮。相反,我想在单击另一个按钮时禁用data-toggle属性。

5 个答案:

答案 0 :(得分:5)

您可以使用bootstraps单选按钮功能来实现该效果。试试这个:

<div data-toggle="buttons-radio">
    <button class="btn btn-danger">Today</button>
    <button class="btn btn-danger">Tomorrow</button>
    <button class="btn btn-danger">DayAfterTomorrow</button>
</div>

演示:http://jsfiddle.net/u7Lg8/

答案 1 :(得分:1)

试试这样:

$('.btn').click(function(){
    //Removing `data-toggle` from all elements
    $('.btn').removeData('toggle');
    //Adding `data-toggle` on clicked element
    $(this).data('toggle','button');        
});

答案 2 :(得分:0)

您需要将div下的按钮分组,并在组上设置数据切换。

您可以在Twitter bootstrap buttons

的示例页面中看到它
<!-- Add data-toggle="buttons-checkbox" for checkbox style toggling on btn-group -->
<div class="btn-group" data-toggle="buttons-checkbox">
  <button class="btn">Left</button>
  <button class="btn">Middle</button>
  <button class="btn">Right</button>
</div>

答案 3 :(得分:0)

以下是我为我的网站提出的建议(唯一的改进方法是不使用隐藏变量来存储最终值)

     $("input[name='dispatch']").change(function(){
           
            $(this).parent().siblings().removeClass('active btn-primary');
            $("#WantsDispatchService").val($(this).val());
            
        });
 
  <div class="btn-group btn-toggle  " data-toggle="buttons">
	<label class="btn btn-default btn-sm">
		<input name="dispatch" value="false" type="checkbox"> No
	</label>
	<label class="btn btn-default  btn-sm">

		<input name="dispatch" value="true" type="checkbox"> Yes
	</label>
	 
</div>
<input type ="hidden" id="WantsDispatchService" name="WantsDispatchService" value="false"> 
</div>

答案 4 :(得分:0)

您可以使用$().button('toggle')通过javascript切换按钮状态。*

在我的情况下;我不能使用分组按钮,它们在视觉上彼此分开。

我检查是否按下了其他按钮并使用javascript将其切换回来。 这是我的解决方案:

$('#buttonA').click(function (e) {
    if ($('#buttonB').attr('aria-pressed') == 'true') {
        $('#buttonB').button('toggle');
    }
    e.preventDefault();
});

$('#buttonB').click(function (e) {
    if ($('#buttonA').attr('aria-pressed') == 'true') {
        $('#buttonA').button('toggle');
    }
    e.preventDefault();
});