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
|
|