Tabs Widgetversion added: 1.0
Description: 一种多panel(面板)的单内容区,每个panel(面板)与列表中的标题相关。
选项卡(Tabs)通常用于把内容分成多个部分,以便节省空间,就像折叠面板(accordion)一样。
选项卡(Tabs)有一组必须使用的特定标记,以便选项卡能正常工作:
- 选项卡(Tabs)必须在一个有序的(
<ol>
)或无序的(<ul>
)列表中 - 每个选项卡的 "title" 必须在一个列表项(
<li>
)的内部,且必须用一个带有href
属性的锚(<a>
)包裹。 - 每个选项卡panel(面板)可以是任意有效的元素,但是它必须带有一个 id,该 id 与相关选项卡的锚中的哈希相对应。
每个选项卡panel(面板)的内容可以在页面中定义好,或者可以通过 Ajax 加载。这两种方式都是基于与选项卡相关的锚的 href
上自动处理的。默认情况下,选项卡在点击时激活,但是通过 event
选项可以改变或覆盖事件。
下面是一些样品标记:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
|
键盘交互(Keyboard interaction)
当焦点在选项卡上时,下面的键盘命令可用:
- UP/LEFT:移动焦点到上一个选项卡。如果在第一个选项卡上,则移动焦点到最后一个选项卡。在一个短暂的延迟后激活获得焦点的选项卡。
- DOWN/RIGHT:移动焦点到下一个选项卡。如果在最后一个选项卡上,则移动焦点到第一个选项卡。在一个短暂的延迟后激活获得焦点的选项卡。
- HOME:移动焦点到第一个选项卡。在一个短暂的延迟后激活获得焦点的选项卡。
- END:移动焦点到最后一个选项卡。在一个短暂的延迟后激活获得焦点的选项卡。
- SPACE:激活与获得焦点的选项卡相关的panel(面板)。
- ENTER:激活或切换与获得焦点的选项卡相关的panel(面板)。
- ALT+PAGE UP:移动焦点到上一个选项卡,并立即激活。
- ALT+PAGE DOWN:移动焦点到下一个选项卡,并立即激活。
当焦点在panel(面板)上时,下面的键盘命令可用:
- CTRL+UP:移动焦点到相关的选项卡。
- ALT+PAGE UP:移动焦点到上一个选项卡,并立即激活。
- ALT+PAGE DOWN:移动焦点到下一个选项卡,并立即激活。
主题(Theming)
选项卡部件(Tabs Widget)使用 jQuery UI CSS 框架 来定义它的外观和感观的样式。如果需要使用选项卡指定的样式,则可以使用下面的 CSS class 名称:
ui-tabs
:选项卡的外层容器。当设置了collapsible
选项时,该元素会另外带有一个ui-tabs-collapsible
class。ui-tabs-nav
:选项卡列表。- 导航中激活的列表项会带有一个
ui-tabs-active
class。内容通过 Ajax 调用加载的列表项会带有一个ui-tabs-loading
class。ui-tabs-anchor
:用于切换panel(面板)的锚。
- 导航中激活的列表项会带有一个
ui-tabs-panel
:与选项卡相关的panel(面板)。只有与其对应的选项卡激活时才可见。
依赖(Dependencies)
- UI 核心(UI Core)
- 部件库(Widget Factory)
- 特效核心(Effects Core)(可选的;当与
show
和hide
选项一起使用时)
Additional Notes:
- 该部件要求一些功能性的 CSS,否则将无法工作。如果您创建了一个自定义的主题,请使用小部件指定的 CSS 文件作为起点。
Options
activeType: Boolean or Integer
0
-
Boolean:设置
active
为false
将折叠所有的panel(面板)。这要求collapsible
选项必须为true
。 - Integer: 激活打开的panel(面板)索引,以零为基础。负值则表示从最后一个panel(面板)后退选择panel(面板)。
初始化带有指定 active
选项的 Tab(选项卡):
1
|
|
在初始化后,获取或设置active
选项:
1
2
3
4
5
|
|
collapsibleType: Boolean
false
true
时,激活的panel(面板)可以被关闭。初始化带有指定 collapsible
选项的 Tab(选项卡):
1
|
|
在初始化后,获取或设置collapsible
选项:
1
2
3
4
5
|
|
disabledType: Boolean or Array
false
- Boolean: 启用或禁用所有选项卡。
-
Array:
一个数组。包含从零开始计数的应该禁用选项卡的索引,例如,
[ 0, 2 ]
将禁用第一和第三个选项卡。
初始化带有指定 disabled
选项的 Tab(选项卡):
1
|
|
在初始化后,获取或设置disabled
选项:
1
2
3
4
5
|
|
eventType: String
"click"
"mouseover"
。初始化带有指定 event
选项的 Tab(选项卡):
1
|
|
在初始化后,获取或设置event
选项:
1
2
3
4
5
|
|
heightStyleType: String
"content"
-
"auto"
: 所有的panel(面板)将会被设置为最高的panel(面板)的高度。 -
"fill"
: 基于 tabs 的父元素的高度,扩展到可用的高度。 -
"content"
: 每个panel(面板)的高度取决于它的内容。
初始化带有指定 heightStyle
选项的 Tab(选项卡):
1
|
|
在初始化后,获取或设置heightStyle
选项:
1
2
3
4
5
|
|
hideType: Boolean or Number or String or Object
null
-
Boolean:
当设置为
false
, 将不使用动画效果,该panel(面板)会立即被隐藏。 如果设置为true
, 该panel(面板)将会以默认的持续时间和默认的效果淡出。 - Number: 该panel(面板)将以指定的时间和默认的效果淡出。
-
String:
该panel(面板)将使用指定的效果被隐藏。
该值可以是一个jQuery内置的动画方法的名称,
如
"slideUp"
, 或一个 jQuery UI 效果的名称, 如"fold"
。 在这两种情况下,将使用默认持续时间和默认的动画效果。 -
Object: 如果该值是一个对象,
那么
effect
,delay
,duration
, 和easing
可能要提供。 如果effect
属性包含一个jQuery方法的名称, 那么该方法将被使用; 否则它被假定为是一个jQuery UI的效果的名称。 当使用jQuery UI 支持额外设置 的效果 , 你可以在对象中包含那些设置 并且它们将被传递到的效果。如果duration
持续时间或easing
属性被省略, 那么默认值将被使用。 如果effect
被省略, 那么"fadeOut"
将被使用。如果delay
被省略, 那么将不使用延迟。
初始化带有指定 hide
选项的 Tab(选项卡):
1
|
|
在初始化后,获取或设置hide
选项:
1
2
3
4
5
|
|
showType: Boolean or Number or String or Object
null
-
Boolean:
当设置为
false
, 将不使用动画效果,该panel(面板)会立即被隐藏。 如果设置为true
, 该panel(面板)将会以默认的持续时间和默认的效果淡出。 - Number: 该panel(面板)将以指定的时间和默认的效果淡出。
-
String:
该panel(面板)将使用指定的效果被隐藏。
该值可以是一个jQuery内置的动画方法的名称,
如
"slideUp"
, 或一个 jQuery UI 效果的名称, 如"fold"
。 在这两种情况下,将使用默认持续时间和默认的动画效果。 -
Object: 如果该值是一个对象,
那么
effect
,delay
,duration
, 和easing
可能要提供。 如果effect
属性包含一个jQuery方法的名称, 那么该方法将被使用; 否则它被假定为是一个jQuery UI的效果的名称。 当使用jQuery UI 支持额外设置 的效果 , 你可以在对象中包含那些设置 并且它们将被传递到的效果。如果duration
持续时间或easing
属性被省略, 那么默认值将被使用。 如果effect
被省略, 那么"fadeOut"
将被使用。如果delay
被省略, 那么将不使用延迟。
初始化带有指定 show
选项的 Tab(选项卡):
1
|
|
在初始化后,获取或设置show
选项:
1
2
3
4
5
|
|
Methods
destroy()Returns: jQuery (plugin only)
- 该方法不接受任何参数。
调用 destroy 方法:
1
|
|
disable()Returns: jQuery (plugin only)
- 该方法不接受任何参数。
调用该方法:
1
|
|
disable( index )Returns: jQuery (plugin only)
disabled
选项: $( "#tabs" ).tabs( "option", "disabled", [ 1, 2, 3 ] )
.
-
index哪个 tabs(选项卡)被禁用。
调用该方法:
1
|
|
enable()Returns: jQuery (plugin only)
- 该方法不接受任何参数。
调用该方法:
1
|
|
enable( index )Returns: jQuery (plugin only)
$( "#example" ).tabs( "option", "disabled", [] );
.-
indexWhich tab to enable.
调用该方法:
1
|
|
load( index )Returns: jQuery (plugin only)
-
index哪个tabs需要加载
调用 load 方法:
1
|
|
option( optionName )Returns: Object
optionName
关联的值。-
optionNameType: String要获取值的选项的名称。
调用该方法:
1
|
|
option()Returns: PlainObject
- 该方法不接受任何参数。
调用该方法:
1
|
|
option( optionName, value )Returns: jQuery (plugin only)
optionName
关联的 tabs 选项的值。调用该方法:
1
|
|
option( options )Returns: jQuery (plugin only)
-
optionsType: Object要设置的 option-value 对。
调用该方法:
1
|
|
refresh()Returns: jQuery (plugin only)
heightStyle
选项。- 该方法不接受任何参数。
调用 refresh 方法:
1
|
|
widget()Returns: jQuery
jQuery
对象。
- 该方法不接受任何参数。
调用 widget 方法:
1
|
|
Events
activate( event, ui )Type: tabsactivate
面板被激活后触发(在动画完成之后)。如果 tabs(选项卡) 之前是关闭的,则 ui.oldTab
和 ui.oldPanel
将是空的 jQuery
对象。如果 tabs(选项卡) 正在折叠,则 ui.newTab
和 ui.newPanel
将是空的 jQuery 对象。
activate
事件只有在面板激活时才能触发,当创建 tabs(选项卡) 部件时,最初的面板不会触发该事件。如果您需要一个用于部件创建的钩,请使用 create
事件。
初始化带有指定 activate 回调的 Tab(选项卡面板):
1
2
3
|
|
绑定一个事件监听器到 tabsactivate 事件:
1
|
|
beforeActivate( event, ui )Type: tabsbeforeactivate
ui.oldTab
和 ui.oldPanel
将是空的 jQuery 对象。如果 accordion 正在折叠,则 ui.newTab
和 ui.newPanel
将是空的 jQuery 对象。
初始化带有指定 beforeActivate 回调的 Tab(选项卡面板):
1
2
3
|
|
绑定一个事件监听器到 tabsbeforeactivate 事件:
1
|
|
beforeLoad( event, ui )Type: tabsbeforeload
在一个远程选项卡被加载之前,beforeActivate
事件之后,触发该事件。可以取消,以防止 tabs(选项卡)面板加载内容;虽然面板仍然会被激活。
该事件被触发Ajax请求发送之前,这样可以使用ui.jqXHR
和 ui.ajaxSettings
修改。
注意:
虽然ui.ajaxSettings
被提供,并且可以被修改,
其中的一些设置已经通过jQuery处理。
例如,prefilters已经被应用,data
已被处理,还有type
已经确定。
,
因为beforeSend
作为jQuery.ajax()
的回调,beforeLoad
事件同时是发生的,因此具有相同的限制。
-
eventType: Event
-
uiType: Object
-
tabType: jQuery正在加载的选项卡。
-
panelType: jQuery将Ajax响应填充的面板。
-
jqXHRType: jqXHR被请求内容的
jqXHR
对象。 -
ajaxSettingsType: Object用于由
jQuery.ajax
请求内容的设置。
-
初始化带有指定 beforeLoad 回调的 Tab(选项卡面板):
1
2
3
|
|
绑定一个事件监听器到 tabsbeforeload 事件:
1
|
|
create( event, ui )Type: tabscreate
ui.tab
和 ui.panel
将是空的 jQuery 对象。
初始化带有指定 create 回调的 Tab(选项卡面板):
1
2
3
|
|
绑定一个事件监听器到 tabscreate 事件:
1
|
|
load( event, ui )Type: tabsload
初始化带有指定 load 回调的 Tab(选项卡面板):
1
2
3
|
|
绑定一个事件监听器到 tabsload 事件:
1
|
|
Example:
一个简单的 jQuery UI 选项卡(Tabs)。
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
|
|