## 按钮 button.js
**状态提示**
通过自定义属性和简单的JavaScript,就可以让按钮具有状态提示功能。比如,没有点击按钮时,正常显示;点击按钮时,触发相应的状态,并显示该状态对应的文本信息。
**1.** 加载状态
要让按钮显示加载状态,首先要给按钮添加 data-loading-text 属性,它的值为加载状态要显示的文本信息,如 "Loading...":
```html
<button type="button" id="myButton" data-loading-text="Loading..." class="btn btn-primary" autocomplete="off">
Loading state
</button>
```
![](https://img.kancloud.cn/7d/c8/7dc8fa2eb29ac9035629b09b7bd6dddf_568x60.png)
还要为按钮定义单击事件,并在点击时调用 button('loading') 方法,来触发加载状态。代码如下:
```js
$('.btn').click(function(){
$(this).button('loading');
})
```
当点击按钮时,会触发加载状态,按钮的文本会变成 data-loading-text 属性的值。加载过程中,按钮被自动禁用,它会变灰,不再响应单击。如下:
![](https://img.kancloud.cn/dd/9f/dd9fa4d7d8d40ef5b5bdaeba3e57b6ab_637x66.png)
**2.** 自定义状态
按钮自定义任意状态,只需为按钮添加 data-xxx-text 属性,并在点击按钮时调用 button('xxx') 方法即可。例如,为按钮自定义 complete 状态,首先为按钮添加 data-complete-text 属性,属性的值为 complete 状态要显示的文本信息:
```html
<button type="button" id="myButton" data-complete-text="complete..." class="btn btn-primary" autocomplete="off">
complete
</button>
```
![](https://img.kancloud.cn/e6/cf/e6cf86f3f79752f1b756e90de95b9752_618x61.png)
再为按钮定义单击事件,并在点击时调用 button('complete') 方法:
```js
$('.btn').click(function(){
$(this).button('complete');
})
```
![](https://img.kancloud.cn/d5/b3/d5b3634059451468611af952f23de49b_619x58.png)
**3.** 重置状态
如果想让按钮的文本回到最初的样子,可以调用 button('reset') 方法来重置按钮的状态,让它显示初始的文本。
```js
$('.btn').button('reset')
```
如果没有为按钮定义 data-complete-text 属性,重置状态下会显示初始的文本,如果定义了 data-complete-text 属性,则显示 data-complete-text 属性指定的文本。
*****
**按钮状态切换**
**1.** 通过data属性切换按钮状态
将单个按钮的 data-toggle 属性设置 button,或通过简单的JavaScript,就可以激活按钮的行为状态,让它在未激活和激活状态之间来回切换。
```html
<button class="btn btn-primary" data-toggle="button" autocomplete="off">Single Toggle</button>
```
当单击时,会激活按钮,激活状态以深色背景显示。
![](https://img.kancloud.cn/a6/b1/a6b1ea3979dac0e832c395671216bff2_618x61.png)
再次单击时,按钮又回到默认状态,默认状态以浅色背景显示。
![](https://img.kancloud.cn/dc/e8/dce8bc5692342b021c04e8df4a48aa03_617x58.png)
**2.** 通过JavaScript切换按钮状态
```html
<button class="btn btn-primary" >Single Toggle</button>
```
```js
$('.btn').click(function() {
$(this).button('toggle');
});
```
注意:在实现状态切换功能时,不限制一定要用 button 元素,只要应用了 .btn 类,它可以是任何元素。
*****
**按钮组**
将按钮组放在特定的容器中,不必编写JavaScript代码,就可以让按钮组具有HTML的复选框(checkbox)或单选框(radio)的效果。
**1.** 复选按钮组
复选按钮组是类似于复选框的一组按钮,用户可以选择按钮组中的多个按钮。要添加这个功能,只需给 .btn-group 的按钮组容器添加 data-toggle="buttons " 属性,并将一组包含复选框的label元素放入容器中:
```html
<div class="btn-group" data-toggle="buttons">
<label class="btn btn-primary active">
<input type="checkbox" autocomplete="off" checked> Checkbox 1 (pre-checked)
</label>
<label class="btn btn-primary">
<input type="checkbox" autocomplete="off"> Checkbox 2
</label>
<label class="btn btn-primary">
<input type="checkbox" autocomplete="off"> Checkbox 3
</label>
</div>
```
复选按钮组跟HTML中的复选框使用方法相同,单击按钮组中的某个按钮,按钮将被选中,再次单击,将取消选中。被选中的按钮以深色背景显示,取消选中的按钮以默认的浅色背景显示。
![](https://img.kancloud.cn/9d/6d/9d6d89575c855f744acf8b5d8a4721d5_618x69.png)
**2.** 单选按钮组
单选按钮组是类似于单选框的一组按钮,用户每次只能选择按钮组中的一个按钮。要添加这个功能,只需给 .btn-group 的按钮组容器添加 data-toggle="buttons-radio" 属性,并将一组包含单选按钮的label元素放入容器中:
```html
<div class="btn-group" data-toggle="buttons">
<label class="btn btn-primary active">
<input type="radio" name="options" id="option1" autocomplete="off" checked> Radio 1 (preselected)
</label>
<label class="btn btn-primary">
<input type="radio" name="options" id="option2" autocomplete="off"> Radio 2
</label>
<label class="btn btn-primary">
<input type="radio" name="options" id="option3" autocomplete="off"> Radio 3
</label>
</div>
```
单选按钮组跟HTML中的单选框使用方法相同,单击按钮组中的某个按钮,该按钮将被选中,其它按钮将取消选中。被选中的按钮以深色背景显示,取消选中的按钮以默认的浅色背景显示。
![](https://img.kancloud.cn/20/7b/207b0d10edf89e36bbfedbbb1c0005f9_615x64.png)
- 第一章 . bootstrap介绍
- 第二章 . 全局CSS样式
- 1、总体注意事项
- 2、栅格系统
- 3、排版
- 4、代码
- 5、表格
- 6、表单
- 7、 按钮
- 8、 图片
- 9、辅助类
- 10、响应式工具
- 第三章 . bootstrap相关CSS应用
- 1、CSS媒体查询 @media
- 2、px,em,rem之间的关系和换算方式
- 第四章 . 组件
- 1、Glyphicons 字体图标
- 2、下拉菜单
- 3、按钮组
- 4、按钮式下拉菜单
- 5、输入框组
- 6、导航
- 7、导航条
- 8、路径导航
- 9、分页
- 10、标签
- 11、徽章
- 12、巨幕
- 13、页头
- 14、缩略图
- 15、警告框
- 16、进度条
- 17、媒体对象
- 18、列表组
- 19、面版
- 20、Well
- 第五章 . JavaScript 插件
- 1、JavaScript 插件引入前提
- 2、过渡效果 (transition.js)
- 3、模态框 (modal.js)
- 4、下拉菜单 (dropdown.js)
- 5、滚动监听 (scrollspy.js)
- 6、可切换标签 (tab.js)
- 7、工具提示 (tooltip.js)
- 8、弹出框 (popover.js)
- 9、警告信息 (alert.js)
- 10、按钮 (button.js)
- 11、折叠插件(collapse.js)
- 12、轮播插件(carousel.js)
- 13、Affix插件(affix.js)