一、简介

Dropdown 就是下拉列表,这里 有一个例子。

Dropdown 的完整代码如下:

<div id="dropdownWrapper">
<button class="btn btn-default dropdown-toggle" type="button" id="btnTargetDropdownMenu" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Dropdown <span class="caret"></span>
</button>
<ul class="dropdown-menu" aria-labelledby="btnTargetDropdownMenu">
<li class="dropdown-header">Dropdown header</li>
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li class="disabled"><a href="#">Something else here</a></li>
<li role="separator" class="divider"></li>
<li><a href="#">Separated link</a></li>
</ul>
</div>

{提示}

  1. .dropdown-toggle 这个类不是必须的,不过稍后讲到 Dropdown 的 JavaScript 代码调用时要使用它,所以为了方便,先在这里一并写入。
  2. #dropdownWrapper 表示 Dropdown 的容器,可根据具体情况命名,稍后讲到事件回调时,要用到它。

默认的 Dropdown 是隐藏的,让它出现有两种方式:

  1. 标签 API
  2. JavaScript 代码

二、通过标签 API

  1. .dropdown-toggle 上添加 data-toggle="dropdown"(重申:.dropdown-toggle 不是必须添加的)。
  2. 下拉菜单 <ul> 添加 .dropdown-menu

三、通过 JavaScript 代码

使用 $('.dropdown-toggle').dropdown('toggle'); 可以让下拉框展开。

{注意} 无论是使用标签 API 还是 JavaScript 代码,data-toggle="dropdown" 始终要写上

四、Dropdown 的事件回调

Dropdown 回调事件总是在 .dropdown-menu 的父元素上触发(此处指 #dropdownWrapper。事件种类主要有四个:

  1. show.bs.dropdown :在 Dropdown 显示时触发。
  2. shown.bs.dropdown :在 Dropdown 显示之后触发。
  3. hide.bs.dropdown :在 Dropdown 隐藏时触发。
  4. hidden.bs.dropdown :在 Dropdown 隐藏之后触发。

举个例子:

$('#dropdownWrapper').on('shown.bs.dropdown', function showDropdown() {
console.log('Dropdown is showed!');
});

五、设备可访问性

为了提高代码的设备可访问性,我们给 Dropdown 添加一些额外代码。

  1. #btnTargetDropdownMenu 上:添加 aria-haspopup="true",表示有子菜单。
  2. #btnTargetDropdownMenu 上:添加 aria-expanded="false",表示菜单现在没有展开。
  3. .dropdown-menu 上:添加 aria-labelledby="...",值为受指向标签的 id,在这里等同于设置 aria-label="Dropdown",屏幕阅读器读到这里时,就会读出 Dropdown 这个单词。

六、参考链接

http://getbootstrap.com/javascript/#dropdowns

(完)

最新文章

  1. 让 OpenAL 也支持 S16 Planar(辅以 FFmpeg)
  2. 【转】C#中WinForm程序退出方法技巧总结
  3. mysql数据库之基础SQL语句/语法
  4. shell脚本中的特殊符号
  5. 002--VS C++ 获取鼠标坐标并显示在窗口上
  6. 正则转nfa:完成
  7. Nginx模块开发1_明白自定义模块的编译流程
  8. 关于WPF中Popup控件的小记
  9. Shell编程之Shift的用法
  10. 一步一步教你用c# entity framework6 连接 sqlite 实现增删改查
  11. MySQL多数据源笔记3-分库分表理论和各种中间件
  12. Minor GC vs Major GC vs Full GC
  13. spring之文件上传
  14. MySql:触发器
  15. nginx安装(转发)
  16. 一步一步学习IdentityServer3 (2)
  17. ormlite 在android中 排序 条件查询
  18. 超级账本环境搭建fabric
  19. python网络爬虫 - 设定重试次数内反复抓取
  20. Django的models介绍

热门文章

  1. windows文件名非法字符过滤检测-正则表达式
  2. springCloud组件启动时,提示内部tomcat无法加载
  3. phpstorm下载和破解
  4. [转]java 中的序列化是什么意思?有什么好处?
  5. GPIO编程2:使用GPIO监听中断完整程序
  6. maven配置的问题,maven的环境变量配置
  7. c# 使用GetPrivateProfileString 读ini数据 失败
  8. 开发环境入门 linux基础 (部分)nginx和nfs
  9. 管理linked break-off snapshot
  10. 安装 MongoDB。