Tabs(选项卡)
使用$.fn.iTabs.defaults重写默认值对象。
选项卡显示一批面板。但在同一个时间只会显示一个面板。每个选项卡面板都有头标题和一些小的按钮工具菜单,包括关闭按钮和其他自定义按钮。
依赖关系
用法
创建面板
1. 通过标签创建选项卡
通过标签可以更容易的创建选项卡,我们不需要写任何Javascript代码。只需要给<div/>标签添加一个data-toggle="topjui-tabs"。每个选项卡面板都通过子<div/>标签进行创建,用法和panel(面板)相同。
html
<div id="tt" data-toggle="topjui-tabs" style="width:500px;height:250px;">
<div title="Tab1" style="padding:20px;display:none;">
tab1
</div>
<div title="Tab2" data-options="closable:true" style="overflow:auto;padding:20px;display:none;">
tab2
</div>
<div title="Tab3" data-options="iconCls:'icon-reload',closable:true" style="padding:20px;display:none;">
tab3
</div>
</div>2. 通过Javascript创建选项卡
下面的代码演示如何使用Javascript创建选项卡,当该选项卡被选择时将会触发'onSelect'事件。
javascript
$('#tt').iTabs({
border:false,
onSelect:function(title){
alert(title+' is selected');
}
});添加新的选项卡面板
添加一个新的包含小工具菜单的选项卡面板,小工具菜单图标(8x8)被放置在关闭按钮之前。
javascript
// add a new tab panel
$('#tt').iTabs('add',{
title: 'New Tab',
content: 'Tab Body',
closable:true,
tools:[{
iconCls:'icon-mini-refresh',
handler:function(){
alert('refresh');
}
}]
});获取选择的选项卡
javascript
// get the selected tab panel and its tab object
var pp = $('#tt').iTabs('getSelected');
var tab = pp.iPanel('options').tab; // the corresponding tab object属性
| 属性名 | 属性值类型 | 描述 | 默认值 |
|---|---|---|---|
| width | number | 选项卡容器宽度。 | auto |
| height | number | 选项卡容器高度。 | auto |
| plain | boolean | 设置为true时,将不显示控制面板背景。 | false |
| fit | boolean | 设置为true时,选项卡的大小将铺满它所在的容器。 | false |
| border | boolean | 设置为true时,显示选项卡容器边框。 | true |
| scrollIncrement | number | 选项卡滚动条每次滚动的像素值。 | 100 |
| scrollDuration | number | 每次滚动动画持续的时间,单位:毫秒。 | 400 |
| tools | array,selector | 工具栏添加在选项卡面板头的左侧或右侧。可用的值有: 1. 一个工具菜单数组,每个工具选项都和linkbutton相同。 2. 一个指向 <div/>容器工具菜单的选择器。见下方代码示例。 | null |
| toolPosition | string | 工具栏位置。可用值:'left','right'。 | right |
| tabPosition | string | 选项卡位置。可用值:'top','bottom','left','right'。 | top |
| headerWidth | number | 选项卡标题宽度,在tabPosition属性设置为'left'或'right'的时候才有效。 | 150 |
| tabWidth | number | 标签条的宽度。 | auto |
| tabHeight | number | 标签条的高度。 | 27 |
| selected | number | 初始化选中一个标签页。 | 0 |
| showHeader | boolean | 设置为true时,显示标签页标题。 | true |
| justified | boolean | 设置为true时,生成等宽标题选项卡。 | false |
| narrow | boolean | 设置为true时,删除选项卡标题之间的空间。 | false |
| pill | boolean | 设置为true时,选项卡标题样式改为气泡状。 | false |
属性代码示例
tools属性示例:
通过数组定义工具菜单:
javascript
$('#tt').iTabs({
tools:[{
iconCls:'icon-add',
handler:function(){
alert('添加')
}
},{
iconCls:'icon-save',
handler:function(){
alert('保存')
}
}]
});通过存在的DOM容器定义工具菜单:
javascript
$('#tt').iTabs({
tools:'#tab-tools'
});html
<div id="tab-tools">
<a href="#" data-toggle="topjui-linkbutton" plain="true" iconcls="icon-add"></a>
<a href="#" data-toggle="topjui-linkbutton" plain="true" iconcls="icon-save"></a>
</div>事件
| 事件名 | 事件参数 | 描述 |
|---|---|---|
| onLoad | panel | 在ajax选项卡面板加载完远程数据的时候触发。 |
| onSelect | title,index | 用户在选择一个选项卡面板的时候触发。 |
| onUnselect | title,index | 用户在取消选择一个选项卡面板的时候触发。 |
| onBeforeClose | title,index | 在选项卡面板关闭的时候触发,返回false取消关闭操作。见下方代码示例。 |
| onClose | title,index | 在用户关闭一个选项卡面板的时候触发。 |
| onAdd | title,index | 在添加一个新选项卡面板的时候触发。 |
| onUpdate | title,index | 在更新一个选项卡面板的时候触发。 |
| onContextMenu | e,title,index | 在右键点击一个选项卡面板的时候触发。 |
事件代码示例
onBeforeClose事件示例:
下面的例子展示了在关闭选项卡面板之前以何种方式显示确认对话框:
javascript
$('#tt').iTabs({
onBeforeClose: function(title){
return confirm('您确认想要关闭 ' + title);
}
});
// 使用异步确认对话框
$('#tt').iTabs({
onBeforeClose: function(title,index){
var target = this;
$.iMessager.confirm('确认','你确认想要关闭'+title,function(r){
if (r){
var opts = $(target).iTabs('options');
var bc = opts.onBeforeClose;
opts.onBeforeClose = function(){}; // 允许现在关闭
$(target).iTabs('close',index);
opts.onBeforeClose = bc; // 还原事件函数
}
});
return false; // 阻止关闭
}
});方法
| 方法名 | 方法参数 | 描述 |
|---|---|---|
| options | none | 返回选项卡属性。 |
| tabs | none | 返回所有选项卡面板。 |
| resize | none | 调整选项卡容器大小和布局。 |
| add | options | 添加一个新选项卡面板,选项参数是一个配置对象,查看选项卡面板属性的更多细节。在添加一个新选项卡面板的时候它将变成可选的。 添加一个非选中状态的选项卡面板时,记得设置'selected'属性为false。 见下方代码示例。 |
| close | which | 关闭一个选项卡面板,'which'参数可以是选项卡面板的标题或者索引,以指定要关闭的面板。 |
| getTab | which | 获取指定选项卡面板,'which'参数可以是选项卡面板的标题或者索引。 |
| getTabIndex | tab | 获取指定选项卡面板的索引。 |
| getSelected | none | 获取选择的选项卡面板。见下方代码示例。 |
| select | which | 选择一个选项卡面板,'which'参数可以是选项卡面板的标题或者索引。 |
| unselect | which | 取消选择一个选项卡面板,'which'参数可以是选项卡面板的标题或者索引。 |
| showHeader | none | 显示选项卡的标签头。 |
| hideHeader | none | 隐藏选项卡的标签头。 |
| showTool | none | 显示工具栏。 |
| hideTool | none | 隐藏工具栏。 |
| exists | which | 表明指定的面板是否存在,'which'参数可以是选项卡面板的标题或索引。 |
| update | param | 更新指定的选项卡面板,'param'参数包含2个属性: tab:要更新的选项卡面板。 type:更新类型,可用值有:'header', 'body', 'all'。 options:面板的属性。 见下方代码示例。 |
| enableTab | which | 启用指定的选项卡面板,'which'参数可以是选项卡面板的标题或索引。见下方代码示例。 |
| disableTab | which | 禁用指定的选项卡面板,'which'参数可以是选项卡面板的标题或索引。见下方代码示例。 |
| scrollBy | deltaX | 滚动选项卡标题指定的像素数量,负值则向右滚动,正值则向左滚动。见下方代码示例。 |
方法代码示例
add方法示例:
javascript
// 添加一个未选中状态的选项卡面板
$('#tt').iTabs('add',{
title: '新选项卡面板',
selected: false
//...
});
// 在索引为2的位置上插入一个选项卡面板
$('#tt').iTabs('add',{
title: '插入的选项卡面板',
index: 2
});getSelected方法示例:
下面的例子展示了如何获取选择的选项卡面板索引:
javascript
var tab = $('#tt').iTabs('getSelected');
var index = $('#tt').iTabs('getTabIndex',tab);
alert(index);update方法示例:
javascript
// 更新选择的面板的新标题和内容
var tab = $('#tt').iTabs('getSelected'); // 获取选择的面板
$('#tt').iTabs('update', {
tab: tab,
options: {
title: '新标题',
href: 'get_content.php' // 新内容的URL
}
});
// 调用 'refresh' 方法更新选项卡面板的内容
var tab = $('#tt').iTabs('getSelected'); // 获取选择的面板
tab.iPanel('refresh', 'get_content.php');enableTab方法示例:
javascript
$('#tt').iTabs('enableTab', 1); // 启用第二个选项卡面板
$('#tt').iTabs('enableTab', 'Tab2'); // 启用标题为Tab2的选项卡面板disableTab方法示例:
javascript
$('#tt').iTabs('disableTab', 1); // 禁用第二个选项卡面板scrollBy方法示例:
javascript
// 滚动选项卡标题到左边
$('#tt').iTabs('scrollBy', 10);选项卡面板
选项卡面板属性与panel组件属性的定义类似,下面是2个组件的一些公共属性。
| 属性名 | 属性值类型 | 描述 | 默认值 |
|---|---|---|---|
| id | string | 选项卡面板的ID属性。 | null |
| title | string | 选项卡面板的标题文本。 | |
| content | string | 选项卡面板的内容。 | |
| href | string | 从URL加载远程数据内容填充到选项卡面板。 | null |
| cache | boolean | 如果为true,在'href'属性设置了有效值的时候缓存选项卡面板。 | true |
| iconCls | string | 定义了一个图标的CSS类ID显示到选项卡面板标题。 | null |
| width | number | 选项卡面板宽度。 | auto |
| height | number | 选项卡面板高度。 | auto |
| collapsible | boolean | 如果为true,则允许选项卡摺叠。 | false |
下面的是选项卡面板新增且独有的属性。
| 属性名 | 属性值类型 | 描述 | 默认值 |
|---|---|---|---|
| closable | boolean | 在设置为true的时候,选项卡面板将显示一个关闭按钮,在点击的时候会关闭选项卡面板。 | false |
| selected | boolean | 在设置为true的时候,选项卡面板会被选中。 | false |
| disabled | boolean | 在设置为true的时候,选项卡面板会被禁用。 | false |