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

优质
小牛编辑
132浏览
2023-12-01
pre { white-space: pre-wrap; } 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">
    <div title="Tab1">
        tab1
    </div>
    <div title="Tab2" data-options="closable:true">
        tab2
    </div>
    <div title="Tab3" data-options="iconCls:'icon-reload',closable:true">
        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)对象 

属性

名称类型描述默认值
widthnumber标签页(Tabs)容器的宽度。auto
heightnumber标签页(Tabs)容器的高度。auto
plainboolean当设置为 true 时,就不用背景容器图片来呈现 tab 条。false
fitboolean当设置为 true 时,就设置标签页(Tabs)容器的尺寸以适应它的父容器。false
borderboolean当设置为 true 时,就显示标签页(Tabs)容器边框。true
scrollIncrementnumber每按一次 tab 滚动按钮,滚动的像素数。100
scrollDurationnumber每一个滚动动画应该持续的毫秒数。400
toolsarray,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="#" plain="true" iconCls="icon-add"></a>
    <a href="#" plain="true" iconCls="icon-save"></a>
</div>
null
toolPositionstring工具栏位置。可能的值:'left'、'right'。该属性自版本 1.3.2 起可用。right
tabPositionstring标签页(tab)位置。可能的值:'top'、'bottom'、'left'、'right'。该属性自版本 1.3.2 起可用。top
headerWidthnumber标签页(tab)头部宽度,只有当 tabPosition 设置为 'left' 或 'right' 时才有效。该属性自版本 1.3.2 起可用。150
tabWidthnumbertab 条的宽度。该属性自版本 1.3.4 起可用。auto
tabHeightnumbertab 条的高度。该属性自版本 1.3.4 起可用。27
selectednumber初始化选定的标签页索引。该属性自版本 1.3.5 起可用。0
showHeaderboolean当设置为 true 时,显示标签页(tab)头部。该属性自版本 1.3.5 起可用。true

事件

名称参数描述
onLoadpanel当一个 ajax 标签页面板(tab panel)完成加载远程数据时触发。
onSelecttitle,index当用户选择一个标签页面板(tab panel)时触发。
onUnselecttitle,index当用户未选择一个标签页面板(tab panel)时触发。该事件自版本 1.3.5 起可用。
onBeforeClosetitle,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
  }
});
onClosetitle,index当用户关闭一个标签页面板(tab panel)时触发。
onAddtitle,index当一个新的标签页面板(tab panel)被添加时触发。
onUpdatetitle,index当一个标签页面板(tab panel)被更新时触发。
onContextMenue, title,index当一个标签页面板(tab panel)被右键点击时触发。

方法

名称参数描述
optionsnone返回标签页(tabs)选项(options)。
tabsnone返回全部的标签页面板(tab panel)。
resizenone调整标签页(tabs)容器的尺寸并做布局。
addoptions添加一个新的标签页面板(tab panel),options 参数是一个配置对象,更多详细信息请参见标签页面板(tab panel)属性。
当添加一个新的标签页面板(tab panel)时,它将被选中。
如需添加一个未选中的标签页面板(tab panel),请记得设置 'selected' 属性为 false。
// add a unselected tab panel
$('#tt').tabs('add',{
    title: 'new tab',
    selected: false
    //...
});
closewhich关闭一个标签页面板(tab panel),'which' 参数可以是要被关闭的标签页面板(tab panel)的标题(title)或索引(index)。
getTabwhich获取指定的标签页面板(tab panel),'which' 参数可以是标签页面板(tab panel)的标题(title)或索引(index)。
getTabIndextab获取指定的标签页面板(tab panel)索引。
getSelectednone获取选中的标签页面板(tab panel)。下面的实例演示如何获取选中的标签页面板(tab panel)的索引。
var tab = $('#tt').tabs('getSelected');
var index = $('#tt').tabs('getTabIndex',tab);
alert(index);
selectwhich选择一个标签页面板(tab panel),'which' 参数可以是标签页面板(tab panel)的标题(title)或索引(index)。
unselectwhich选择一个标签页面板(tab panel),'which' 参数可以是标签页面板(tab panel)的标题(title)或索引(index)。该方法自版本 1.3.5 起可用。
showHeadernone显示标签页(tabs)头部。该方法自版本 1.3.5 起可用。
hideHeadernone隐藏标签页(tabs)头部。该方法自版本 1.3.5 起可用。
existswhich指示指定的面板是否已存在,'which' 参数可以是标签页面板(tab panel)的标题(title)或索引(index)。
updateparam更新指定的标签页面板(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.php'  // 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.php');
enableTabwhich启用指定的标签页面板(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
disableTabwhich禁用指定的标签页面板(tab panel),'which' 参数可以是标签页面板(tab panel)的标题(title)或索引(index)。该方法自版本 1.3 起可用。

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

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

标签页面板(Tab Panel)

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

名称类型描述默认值
idstring标签页面板(tab panel)的 id 属性。null
titlestring标签页面板(tab panel)的标题文字。
contentstring标签页面板(tab panel)的内容。
hrefstring加载远程内容来填充标签页面板(tab panel)的 URL。null
cacheboolean当设置为 true 时,在设定了有效的 href 特性时缓存这个标签页面板(tab panel)。true
iconClsstring显示在标签页面板(tab panel)标题上的图标的 CSS class。null
widthnumber标签页面板(tab panel)的宽度。auto
heightnumber标签页面板(tab panel)的高度。auto
collapsibleboolean当设置为 true 时,允许标签页面板(tab panel)可折叠。false

一些附加的属性。

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