Selectmenu 小组件添加版本:1.11
说明:复制并扩展原生 HTML 选择元素的功能,以克服原生控件的限制。
Selectmenu 将 <select> 元素转换为可设置主题和可自定义的控件。该小组件充当原始 <select> 的代理;因此,原始元素的状态将保持用于表单提交和序列化。
Selectmenu 支持 <optgroup> 元素和自定义标记,以呈现特定演示,例如多行。可以通过添加 disabled 属性来禁用 <select> 及其选项。
注意:浏览器对自定义元素上的 accesskey 的支持非常有限。因此,如果 <select> 元素上存在 accesskey 属性,它将无法与自定义 selectmenu 配合使用。如果任何 <option> 元素上存在 accesskey 属性,使用 accesskey 可能会导致原始元素和自定义元素不同步。但是,大多数浏览器不支持 <option> 元素上的 accesskey。
键盘交互
当菜单打开时,可以使用以下键盘命令
-
向上/向左:将焦点移至上一项。 -
向下/向右:将焦点移至下一项。 -
结束/向下翻页:将焦点移至最后一项。 -
主页/向上翻页:将焦点移至第一项。 -
ESC:关闭菜单。 -
ENTER/SPACE:选择当前焦点项并关闭菜单。 -
ALT/OPTION+UP/DOWN:切换菜单的可见性。
当菜单关闭时,可以使用以下键盘命令
-
UP/LEFT:选择上一个项目。 -
DOWN/RIGHT:选择下一个项目。 -
END/PAGE DOWN:选择最后一个项目。 -
HOME/PAGE UP:选择第一个项目。 -
ALT/OPTION+UP/DOWN:切换菜单的可见性。 -
SPACE:打开菜单。
主题
selectmenu 小组件使用 jQuery UI CSS 框架 来设置其外观和感觉。如果需要 selectmenu 特定的样式,可以使用以下 CSS 类名称进行覆盖或作为 classes 选项 的键
-
ui-selectmenu-button:替换页面上原生 selectmenu 的按钮状元素。关闭时具有ui-selectmenu-button-closed类,打开时具有ui-selectmenu-button-open类。-
ui-selectmenu-text:表示按钮元素文本部分的 span。 -
ui-selectmenu-icon:selectmenu 按钮中的图标。
-
-
ui-selectmenu-menu:用于显示选项给用户的 菜单 周围的包装元素(不是菜单本身)。当菜单打开时,将添加ui-selectmenu-open类。-
ui-selectmenu-optgroup:复制原生选择中的<optgroup>元素的元素之一。
-
依赖项
其他说明
- 此小组件需要一些功能性 CSS,否则它将无法工作。如果你构建自定义主题,请使用小组件的特定 CSS 文件作为起点。
选项
appendTo
null
null 时,将检查 <select> 的父级是否有 ui-front 类名。如果找到具有 ui-front 类名的元素,则菜单将附加到该元素。无论值如何,如果找不到元素,则菜单将附加到主体。使用指定的 appendTo 选项初始化 selectmenu
|
1
2
3
|
|
在初始化后获取或设置 appendTo 选项
|
1
2
3
4
5
|
|
classes
|
指定要添加到小部件元素的其他类。在 主题部分 中指定的任何类都可以用作覆盖其值的键。要了解有关此选项的更多信息,请查看 有关 classes 选项的学习文章。
使用指定的 classes 选项初始化选择菜单,更改 ui-selectmenu-menu 类的主题
|
1
2
3
4
5
|
|
在初始化后获取或设置 classes 选项的属性,此处读取和更改 ui-selectmenu-menu 类的主题
|
1
2
3
4
5
|
|
disabled
false
true,则禁用选择菜单。使用指定的 disabled 选项初始化选择菜单
|
1
2
3
|
|
在初始化后获取或设置 disabled 选项
|
1
2
3
4
5
|
|
icons
{ button: "ui-icon-triangle-1-s" }
- button(字符串,默认值:“ui-icon-triangle-1-s”)
使用指定的 icons 选项初始化选择菜单
|
1
2
3
|
|
在初始化后获取或设置 icons 选项
|
1
2
3
4
5
|
|
position
{ my: "left top", at: "left bottom", collision: "none" }
使用指定的 position 选项初始化选择菜单
|
1
2
3
|
|
在初始化后获取或设置 position 选项
|
1
2
3
4
5
|
|
width
false
null 时,使用本机选择器的宽度。当值为 false 时,不会为宽度设置内联样式,从而允许在样式表中设置宽度。使用指定的 width 选项初始化选择菜单
|
1
2
3
|
|
在初始化后获取或设置 width 选项
|
1
2
3
4
5
|
|
方法
instance()返回:对象
检索 selectmenu 的实例对象。如果元素没有关联的实例,则返回 undefined。
与其他小部件方法不同,在 selectmenu 插件加载后,可以在任何元素上安全地调用 instance()。
- 此方法不接受任何参数。
调用 instance 方法
|
1
|
|
option( optionName )返回:对象
获取当前与指定的 optionName 关联的值。
注意:对于以对象作为其值选项,你可以使用点表示法来获取特定键的值。例如,"foo.bar" 将获取 foo 选项上 bar 属性的值。
-
optionName类型:字符串要获取的选项的名称。
调用方法
|
1
|
|
option()返回:PlainObject
- 此签名不接受任何参数。
调用方法
|
1
|
|
扩展点
selectmenu 小部件是使用 小部件工厂 构建的,并且可以进行扩展。在扩展小部件时,您可以覆盖或添加到现有方法的行为。以下方法作为扩展点提供,其 API 稳定性与上面列出的 插件方法 相同。有关小部件扩展的更多信息,请参阅 使用小部件工厂扩展小部件。
_renderButtonItem( item )返回:jQuery
控制生成按钮内容创建的方法。该方法必须创建一个新元素并返回该元素。
-
项目类型:对象
根据所选选项的值设置按钮背景颜色。
|
1
2
3
4
5
6
7
8
9
10
|
|
_renderItem( ul, item )返回:jQuery
控制小部件菜单中每个选项创建的方法。该方法必须创建一个新的 <li> 元素,将其追加到菜单中,并返回它。有关标记的更多详细信息,请参阅 菜单 文档。
根据其相应选项元素的值设置菜单项背景颜色。
|
1
2
3
4
5
6
7
8
9
10
11
12
|
|
_renderMenu( ul, items )返回:jQuery(仅插件)
<ul> 和一个基于原始 <select> 中 <option> 元素的项目数组。创建各个 <li> 元素应委托给 _renderItemData(),而后者又委托给 _renderItem() 扩展点。
向奇数菜单项添加 CSS 类名。
|
1
2
3
4
5
6
7
|
|
事件
change( event, ui )类型:selectmenuchange
select 事件都会触发 change 事件。使用指定的更改回调初始化 selectmenu
|
1
2
3
|
|
将事件侦听器绑定到 selectmenuchange 事件
|
1
|
|
close( event )类型:selectmenuclose
-
event类型:Event
注意:ui 对象为空,但出于与其他事件的一致性而包含在内。
使用指定的关闭回调初始化 selectmenu
|
1
2
3
|
|
将事件侦听器绑定到 selectmenuclose 事件
|
1
|
|
create( event, ui )类型:selectmenucreate
注意:ui 对象为空,但出于与其他事件的一致性而包含在内。
使用指定的创建回调初始化 selectmenu
|
1
2
3
|
|
将事件侦听器绑定到 selectmenucreate 事件
|
1
|
|
focus( event, ui )类型:selectmenufocus
使用指定的焦点回调初始化 selectmenu
|
1
2
3
|
|
将事件侦听器绑定到 selectmenufocus 事件
|
1
|
|
open( event )类型:selectmenuopen
-
event类型:Event
注意:ui 对象为空,但出于与其他事件的一致性而包含在内。
使用指定的打开回调初始化 selectmenu
|
1
2
3
|
|
将事件侦听器绑定到 selectmenuopen 事件
|
1
|
|
示例
一个简单的 jQuery UI Selectmenu
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
|
演示
一个带有选择组的简单 jQuery UI Selectmenu
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
|
演示
一个带有溢出的 jQuery UI Selectmenu
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
|