jQuery EasyUI 布局插件 - Tabs 标签页/选项卡


jQuery EasyUI 插件

通过 $.fn.tabs.defaults 重写默认的 defaults。

The tabs display a collection of panel. It shows only one tab panel at a time. Each tab panel has the header title and some mini button tools, including close button and other customized buttons.

依赖

  • panel
  • linkbutton

用法

创建标签页(Tabs)

1、通过标记创建标签页(Tabs)

从标记创建标签页(Tabs)更容易,我们不需要写任何 JavaScript 代码。记住把 'easyui-tabs' class 添加到 <div> 标记。每个标签页面板(tab panel)通过子 <div> 标记被创建,其用法与面板(panel)一样。

<div id="tt" class="easyui-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、编程创建标签页(Tabs)

现在我们编程创建标签页(Tabs),我们同时捕捉 'onSelect' 事件。

$('#tt').tabs({
    border:false,
    onSelect:function(title){
        alert(title+' is selected');
    }
});

添加新的标签页面板(tab panel)

通过迷你工具添加一个新的标签页面板(tab panel),迷你工具图标(8x8)放置在关闭按钮前。

// 添加一个新的标签页面板(tab panel)
$('#tt').tabs('add',{
    title:'New Tab',
    content:'Tab Body',
    closable:true,
    tools:[{
        iconCls:'icon-mini-refresh',
        handler:function(){
            alert('refresh');
        }
    }]
});

获取选中的标签页(Tab)

// 获取选中的标签页面板(tab panel)和它的标签页(tab)对象
var pp = $('#tt').tabs('getSelected');
var tab = pp.panel('options').tab; // 相应的标签页(tab)对象 

属性

名称 类型 描述 默认值
width number 标签页(Tabs)容器的宽度。 auto
height number 标签页(Tabs)容器的高度。 auto
plain boolean 当设置为 true 时,就不用背景容器图片来呈现 tab 条。 false
fit boolean 当设置为 true 时,就设置标签页(Tabs)容器的尺寸以适应它的父容器。 false
border boolean 当设置为 true 时,就显示标签页(Tabs)容器边框。 true
scrollIncrement number 每按一次 tab 滚动按钮,滚动的像素数。 100
scrollDuration number 每一个滚动动画应该持续的毫秒数。 400
tools array,selector 放置在头部的左侧或右侧的工具栏,可能的值:
1、数组,指示工具组,每个工具选项都和链接按钮(Linkbutton)一样。
2、选择器,指示包含工具的 <div>。

代码实例:
通过数组定义工具。
$('#tt').tabs({
    tools:[{
        iconCls:'icon-add',
        handler:function(){
            alert('add')
        }
    },{
        iconCls:'icon-save',
        handler:function(){
            alert('save')
        }
    }]
});
通过已有的 DOM 容器定义工具。
$('#tt').tabs({
    tools:'#tab-tools'
});
<div id="tab-tools">
    <a href="#" class="easyui-linkbutton" plain="true" iconCls="icon-add"></a>
    <a href="#" class="easyui-linkbutton" plain="true" iconCls="icon-save"></a>
</div>
null
toolPosition string 工具栏位置。可能的值:'left'、'right'。该属性自版本 1.3.2 起可用。 right
tabPosition string 标签页(tab)位置。可能的值:'top'、'bottom'、'left'、'right'。该属性自版本 1.3.2 起可用。 top
headerWidth number 标签页(tab)头部宽度,只有当 tabPosition 设置为 'left' 或 'right' 时才有效。该属性自版本 1.3.2 起可用。 150
tabWidth number tab 条的宽度。该属性自版本 1.3.4 起可用。 auto
tabHeight number tab 条的高度。该属性自版本 1.3.4 起可用。 27
selected number 初始化选定的标签页索引。该属性自版本 1.3.5 起可用。 0
showHeader boolean 当设置为 true 时,显示标签页(tab)头部。该属性自版本 1.3.5 起可用。 true

事件

名称 参数 描述
onLoad panel 当一个 ajax 标签页面板(tab panel)完成加载远程数据时触发。
onSelect title,index 当用户选择一个标签页面板(tab panel)时触发。
onUnselect title,index 当用户未选择一个标签页面板(tab panel)时触发。该事件自版本 1.3.5 起可用。
onBeforeClose title,index 当一个标签页面板(tab panel)被关闭前触发,返回 false 就取消关闭动作。下面的实例演示如何在关闭标签页面板(tab panel)前显示确认对话框。
$('#tt').tabs({
  onBeforeClose: function(title){
    return confirm('Are you sure you want to close ' + title);
  }
});
// using the async confirm dialog
$('#tt').tabs({
  onBeforeClose: function(title,index){
    var target = this;
    $.messager.confirm('Confirm','Are you sure you want to close '+title,function(r){
        if (r){
            var opts = $(target).tabs('options');
            var bc = opts.onBeforeClose;
            opts.onBeforeClose = function(){};  // allowed to close now
            $(target).tabs('close',index);
            opts.onBeforeClose = bc;  // restore the event function
        }
    });
    return false;    // prevent from closing
  }
});
onClose title,index 当用户关闭一个标签页面板(tab panel)时触发。
onAdd title,index 当一个新的标签页面板(tab panel)被添加时触发。
onUpdate title,index 当一个标签页面板(tab panel)被更新时触发。
onContextMenu e, title,index 当一个标签页面板(tab panel)被右键点击时触发。

方法

名称 参数 描述
options none 返回标签页(tabs)选项(options)。
tabs none 返回全部的标签页面板(tab panel)。
resize none 调整标签页(tabs)容器的尺寸并做布局。
add options 添加一个新的标签页面板(tab panel),options 参数是一个配置对象,更多详细信息请参见标签页面板(tab panel)属性。
当添加一个新的标签页面板(tab panel)时,它将被选中。
如需添加一个未选中的标签页面板(tab panel),请记得设置 'selected' 属性为 false。
// add a unselected tab panel
$('#tt').tabs('add',{
    title: 'new tab',
    selected: false
    //...
});
close which 关闭一个标签页面板(tab panel),'which' 参数可以是要被关闭的标签页面板(tab panel)的标题(title)或索引(index)。
getTab which 获取指定的标签页面板(tab panel),'which' 参数可以是标签页面板(tab panel)的标题(title)或索引(index)。
getTabIndex tab 获取指定的标签页面板(tab panel)索引。
getSelected none 获取选中的标签页面板(tab panel)。下面的实例演示如何获取选中的标签页面板(tab panel)的索引。
var tab = $('#tt').tabs('getSelected');
var index = $('#tt').tabs('getTabIndex',tab);
alert(index);
select which 选择一个标签页面板(tab panel),'which' 参数可以是标签页面板(tab panel)的标题(title)或索引(index)。
unselect which 选择一个标签页面板(tab panel),'which' 参数可以是标签页面板(tab panel)的标题(title)或索引(index)。该方法自版本 1.3.5 起可用。
showHeader none 显示标签页(tabs)头部。该方法自版本 1.3.5 起可用。
hideHeader none 隐藏标签页(tabs)头部。该方法自版本 1.3.5 起可用。
exists which 指示指定的面板是否已存在,'which' 参数可以是标签页面板(tab panel)的标题(title)或索引(index)。
update param 更新指定的标签页面板(tab panel),param 参数包含两个属性:
tab:被更新的标签页面板(tab panel)。
options:面板(panel)的选项(options)。

代码实例:
// update the selected panel with new title and content
var tab = $('#tt').tabs('getSelected');  // get selected panel
$('#tt').tabs('update', {
    tab: tab,
    options: {
        title: 'New Title',
        href: 'get_content'  // the new content URL
    }
});

// call 'refresh' method for tab panel to update its content
var tab = $('#tt').tabs('getSelected');  // get selected panel
tab.panel('refresh', 'get_content');
enableTab which 启用指定的标签页面板(tab panel),'which' 参数可以是标签页面板(tab panel)的标题(title)或索引(index)。该方法自版本 1.3 起可用。

代码实例:
$('#tt').tabs('enableTab', 1);    // enable the second tab panel
$('#tt').tabs('enableTab', 'Tab2');    enable the tab panel that has 'Tab2' title
disableTab which 禁用指定的标签页面板(tab panel),'which' 参数可以是标签页面板(tab panel)的标题(title)或索引(index)。该方法自版本 1.3 起可用。

代码实例:
$('#tt').tabs('disableTab', 1);    // disable the second tab panel.
scrollBy deltaX 通过指定的像素数滚动标签页(tab)头部,负值表示滚动到右边,正值表示滚动到左边。该方法自版本 1.3.2 起可用。

代码实例:
// scroll the tab header to left
$('#tt').tabs('scroll', 10);

标签页面板(Tab Panel)

标签页面板(tab panel)属性被定义在面板(panel)组件里,下面是一些常用的属性。

名称 类型 描述 默认值
id string 标签页面板(tab panel)的 id 属性。 null
title string 标签页面板(tab panel)的标题文字。
content string 标签页面板(tab panel)的内容。
href string 加载远程内容来填充标签页面板(tab panel)的 URL。 null
cache boolean 当设置为 true 时,在设定了有效的 href 特性时缓存这个标签页面板(tab panel)。 true
iconCls string 显示在标签页面板(tab panel)标题上的图标的 CSS class。 null
width number 标签页面板(tab panel)的宽度。 auto
height number 标签页面板(tab panel)的高度。 auto
collapsible boolean 当设置为 true 时,允许标签页面板(tab panel)可折叠。 false

一些附加的属性。

名称 类型 描述 默认值
closable boolean 当设置为 true 时,标签页面板(tab panel)将显示一个关闭按钮,点击它就能关闭这个标签页面板(tab panel)。 false
selected boolean 当设置为 true 时,标签页面板(tab panel)将被选中。 false

jQuery EasyUI 插件