Bootstrap 按钮
按钮插件让普通按钮拥有"状态感":可以按下、弹起(toggle),组成单选或复选按钮组,还能在提交时显示"正在加载…"的忙碌状态。它基本通过 data 属性使用,几乎不用写 jQuery。
按下与弹起切换
给按钮加 data-toggle="button",点击后进入被按下的状态:
<button type="button" class="btn btn-primary" data-toggle="button">
单击我试试
</button>
说明:页面中第一次点击,按钮颜色变深表示"被按下";再次点击恢复原样,适合做开关型操作。
复选按钮组
把 data-toggle="buttons" 放在 .btn-group 上,组内每个 label 包一个复选框,可以同时选中多个:
<div class="btn-group" data-toggle="buttons">
<label class="btn btn-default active">
<input type="checkbox"> 音乐
</label>
<label class="btn btn-default">
<input type="checkbox"> 电影
</label>
<label class="btn btn-default">
<input type="checkbox"> 游戏
</label>
</div>
效果:点击"音乐"按钮会高亮选中,再点取消;三项可同时处于选中态,表现像多选表单。
单选按钮组
把复选框换成单选框后,同一组内只能选中一个,天然形成单选效果:
<div class="btn-group" data-toggle="buttons">
<label class="btn btn-success active">
<input type="radio" name="pay" checked> 微信支付
</label>
<label class="btn btn-success">
<input type="radio" name="pay"> 支付宝
</label>
</div>
说明:默认选中"微信支付",点击"支付宝"后高亮随之切换,二者互斥,效果等同于原生 radio 表单。
加载中状态
表单提交常需防止重复点击:按钮先显示"加载中"并自动禁用,任务完成后再 reset 恢复原样:
<button type="button" id="saveBtn" class="btn btn-success"
data-loading-text="保存中...">
保存
</button>
<script>
$('#saveBtn').on('click', function () {
var $btn = $(this);
$btn.button('loading'); // 显示 loading 文字并禁用
setTimeout(function () {
$btn.button('reset'); // 2 秒后恢复为"保存"
}, 2000);
});
</script>
说明:点击后按钮文字立即变成"保存中..."且不可再点,模拟保存 2 秒后还原,可有效防止重复提交。
小结:按钮插件的核心是几个 data-toggle 用法——button 单键切换、buttons 组合成复选或单选组;忙碌反馈交给 loading 与 reset 两个方法,按需组合即可。