选项卡小组件添加版本:1.0
描述:一个具有多个面板的单一内容区域,每个面板都与列表中的标题相关联。
选项卡通常用于将内容分成多个部分,这些部分可以互换以节省空间,就像手风琴一样。
选项卡具有一组特定的标记,必须使用这些标记才能正常工作
- 选项卡本身必须在有序 (
<ol>
) 或无序 (<ul>
) 列表中 - 每个选项卡“标题”必须位于列表项 (
<li>
) 中,并由具有href
属性的锚 (<a>
) 包裹 - 每个选项卡面板可以是任何有效元素,但它必须具有一个 ID,该 ID 对应于关联选项卡锚中的哈希。
每个选项卡面板的内容可以在页面中定义,也可以通过 Ajax 加载;两者都根据与选项卡关联的锚的 href
自动处理。默认情况下,选项卡在单击时激活,但可以通过 event
选项将事件更改为悬停。
下面是一些示例标记
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
|
键盘交互
当焦点在标签上时,可以使用以下按键命令
-
向上
/向左
:将焦点移到上一个标签。如果在第一个标签上,则将焦点移到最后一个标签。在短暂延迟后激活焦点标签。 -
向下
/向右
:将焦点移到下一个标签。如果在最后一个标签上,则将焦点移到第一个标签。在短暂延迟后激活焦点标签。 -
CTRL
+向上
/向左
:将焦点移到上一个标签。如果在第一个标签上,则将焦点移到最后一个标签。必须手动激活焦点标签。 -
CTRL
+向下
/向右
:将焦点移到下一个标签。如果在最后一个标签上,则将焦点移到第一个标签。必须手动激活焦点标签。 -
HOME
:将焦点移到第一个标签。在短暂延迟后激活焦点标签。 -
END
:将焦点移到最后一个标签。在短暂延迟后激活焦点标签。 -
CTRL
+HOME
:将焦点移到第一个标签。必须手动激活焦点标签。 -
CTRL
+END
:将焦点移到最后一个标签。必须手动激活焦点标签。 -
空格
:激活与焦点标签关联的面板。 -
ENTER
:激活或切换与焦点标签关联的面板。 -
ALT
/OPTION
+PAGE UP
:将焦点移到上一个标签并立即激活。 -
ALT
/OPTION
+PAGE DOWN
:将焦点移到下一个标签并立即激活。
当焦点在面板中时,可以使用以下按键命令
-
CTRL
+向上
:将焦点移到关联的标签。 -
ALT
/OPTION
+PAGE UP
:将焦点移到上一个标签并立即激活。 -
ALT
/OPTION
+PAGE DOWN
:将焦点移到下一个标签并立即激活。
主题
标签小组件使用 jQuery UI CSS 框架 来设置其外观和感觉。如果需要标签特定的样式,可以使用以下 CSS 类名称进行覆盖或作为 classes
选项 的键
-
ui-tabs
:标签的外层容器。当collapsible
选项 设置时,此元素还将具有ui-tabs-collapsible
类。-
ui-tabs-nav
:标签列表。-
ui-tabs-tab
:标签列表中的一个项目。活动项目将具有ui-tabs-active
类。任何通过 Ajax 调用加载其关联内容的列表项都将具有ui-tabs-loading
类。-
ui-tabs-anchor
:用于切换面板的锚点。
-
-
-
ui-tabs-panel
:与选项卡关联的面板。只有对应选项卡处于活动状态的面板才会可见。
-
依赖项
- UI Core
- Widget Factory
-
Effects Core(可选;用于
show
和hide
选项)
其他说明
- 此小组件需要一些功能性 CSS,否则将无法正常工作。如果你构建自定义主题,请使用小组件的特定 CSS 文件作为起点。
选项
active
0
-
布尔值:将
active
设置为false
将折叠所有面板。这需要collapsible
选项为true
。 - 整数:处于活动状态(打开)的面板的从零开始的索引。负值从最后一个面板向后选择面板。
使用指定的 active
选项初始化选项卡
1
2
3
|
|
在初始化后获取或设置 active
选项
1
2
3
4
5
|
|
classes
|
指定要添加到小组件元素的其他类。可以在 主题部分 中指定的任何类都可以用作键来覆盖其值。要了解有关此选项的更多信息,请查看 有关 classes
选项的学习文章。
使用指定的 classes
选项初始化选项卡,更改 ui-tabs
类的主题
1
2
3
4
5
|
|
在初始化后获取或设置 classes
选项的属性,在此处读取和更改 ui-tabs
类的主题
1
2
3
4
5
|
|
collapsible
false
true
时,可以关闭活动面板。使用指定的 collapsible
选项初始化选项卡
1
2
3
|
|
在初始化后获取或设置 collapsible
选项
1
2
3
4
5
|
|
disabled
false
- 布尔值:启用或禁用所有选项卡。
-
数组:包含应禁用的选项卡的从零开始的索引的数组,例如,
[ 0, 2 ]
将禁用第一个和第三个选项卡。
使用指定的 disabled
选项初始化选项卡
1
2
3
|
|
在初始化后获取或设置 disabled
选项
1
2
3
4
5
|
|
event
"click"
"mouseover"
。使用指定的 event
选项初始化选项卡
1
2
3
|
|
在初始化后获取或设置 event
选项
1
2
3
4
5
|
|
heightStyle
"content"
-
"auto"
:所有面板都将设置为最高面板的高度。 -
"fill"
:根据选项卡的父级高度扩展到可用高度。 -
"content"
:每个面板的高度仅与其内容一样高。
使用指定的 heightStyle
选项初始化选项卡
1
2
3
|
|
在初始化后获取或设置 heightStyle
选项
1
2
3
4
5
|
|
hide
null
-
布尔值:设置为
false
时,将不使用动画,面板将立即隐藏。设置为true
时,面板将淡出,使用默认持续时间和默认缓动。 - 数字:面板将淡出,使用指定的持续时间和默认缓动。
-
字符串:面板将使用指定的效果隐藏。该值可以是内置 jQuery 动画方法的名称,例如
"slideUp"
,也可以是 jQuery UI 效果 的名称,例如"fold"
。在这两种情况下,效果都将使用默认持续时间和默认缓动。 -
对象:如果该值是一个对象,则可以提供
effect
、delay
、duration
和easing
属性。如果effect
属性包含 jQuery 方法的名称,则将使用该方法;否则,将假定它是一个 jQuery UI 效果的名称。在使用支持其他设置的 jQuery UI 效果时,你可以在对象中包含这些设置,它们将传递给效果。如果省略了duration
或easing
,则将使用默认值。如果省略了effect
,则将使用"fadeOut"
。如果省略了delay
,则不使用延迟。
使用指定的 hide
选项初始化选项卡
1
2
3
|
|
在初始化后获取或设置 hide
选项
1
2
3
4
5
|
|
show
null
-
布尔值:设置为
false
时,将不使用动画,面板将立即显示。设置为true
时,面板将淡入,使用默认持续时间和默认缓动。 - 数字:面板将淡入,使用指定的持续时间和默认缓动。
-
字符串:使用指定效果显示面板。该值可以是内置 jQuery 动画方法的名称,例如
"slideDown"
,也可以是 jQuery UI 效果 的名称,例如"fold"
。无论哪种情况,效果都将使用默认持续时间和默认缓动。 -
对象:如果该值是一个对象,则可以提供
effect
、delay
、duration
和easing
属性。如果effect
属性包含 jQuery 方法的名称,则将使用该方法;否则,假定它是 jQuery UI 效果的名称。在使用支持其他设置的 jQuery UI 效果时,可以在对象中包含这些设置,并将它们传递给效果。如果省略duration
或easing
,则将使用默认值。如果省略effect
,则将使用"fadeIn"
。如果省略delay
,则不使用延迟。
使用指定的 show
选项初始化选项卡
1
2
3
|
|
在初始化后获取或设置 show
选项
1
2
3
4
5
|
|
方法
instance()返回:Object
检索选项卡的实例对象。如果元素没有关联的实例,则返回undefined
。
与其他小部件方法不同,在加载选项卡插件后,可以在任何元素上安全地调用instance()
。
- 此方法不接受任何参数。
调用实例方法
1
|
|
option( optionName )返回:Object
获取当前与指定的optionName
关联的值。
注意:对于以对象作为其值的对象,你可以使用点表示法来获取特定键的值。例如,"foo.bar"
将获取foo
选项上bar
属性的值。
-
optionName类型:字符串要获取的选项的名称。
调用此方法
1
|
|
option()返回:PlainObject
- 此签名不接受任何参数。
调用此方法
1
|
|
refresh()返回:jQuery(仅插件)
heightStyle
选项。- 此方法不接受任何参数。
调用刷新方法
1
|
|
widget()返回:jQuery
jQuery
对象。
- 此方法不接受任何参数。
调用小部件方法
1
|
|
扩展点
选项卡小部件是使用小部件工厂构建的,并且可以扩展。在扩展小部件时,您可以覆盖或添加到现有方法的行为。以下方法作为扩展点提供,具有与上面列出的插件方法相同的 API 稳定性。有关小部件扩展的更多信息,请参阅使用小部件工厂扩展小部件。
_getList()返回:jQuery
- 此方法不接受任何参数。
使用带有类my-tabs
的列表或回退到默认实现。
1
2
3
4
|
|
事件
activate( event, ui )类型:tabsactivate
在选项卡被激活后触发(动画完成后)。如果选项卡之前已折叠,则ui.oldTab
和ui.oldPanel
将为空 jQuery 对象。如果选项卡正在折叠,则ui.newTab
和ui.newPanel
将为空 jQuery 对象。
activate
事件仅在选项卡激活时触发,因此在创建选项卡小部件时不会为初始选项卡触发该事件。如果您需要一个用于小部件创建的钩子,请使用create
事件。使用指定的 activate 回调初始化选项卡
1
2
3
|
|
将事件侦听器绑定到 tabsactivate 事件
1
|
|
beforeActivate( event, ui )类型:tabsbeforeactivate
ui.oldTab
和ui.oldPanel
将为空 jQuery 对象。如果选项卡正在折叠,则ui.newTab
和ui.newPanel
将为空 jQuery 对象。使用指定的 beforeActivate 回调初始化标签页。
1
2
3
|
|
将事件侦听器绑定到 tabsbeforeactivate 事件。
1
|
|
beforeLoad( event, ui )类型:tabsbeforeload
在 beforeActivate
事件之后,当远程标签页即将加载时触发。可以取消,以防止标签页面板加载内容;尽管面板仍将激活。此事件在 Ajax 请求发出之前触发,因此可以对 ui.jqXHR
和 ui.ajaxSettings
进行修改。
注意:虽然提供了 ui.ajaxSettings
并且可以对其进行修改,但 jQuery 已处理其中一些属性。例如,已应用 预过滤器,已处理 data
,并且已确定 type
。beforeLoad
事件在与 jQuery.ajax()
中的 beforeSend
回调相同的时间发生,因此具有相同的限制。
-
event类型:事件
-
ui类型:Object
-
tab类型:jQuery正在加载的标签页。
-
panel类型:jQuery将由 Ajax 响应填充的面板。
-
jqXHR类型:jqXHR请求内容的
jqXHR
对象。 -
ajaxSettings类型:Object
jQuery.ajax
将使用这些属性来请求内容。
-
使用指定的 beforeLoad 回调初始化标签页。
1
2
3
|
|
将事件侦听器绑定到 tabsbeforeload 事件。
1
|
|
create( event, ui )类型:tabscreate
ui.tab
和 ui.panel
将为空 jQuery 对象。使用指定的 create 回调初始化标签页。
1
2
3
|
|
将事件侦听器绑定到 tabscreate 事件。
1
|
|
示例
一个简单的 jQuery UI 选项卡
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
|
|