jQuery EasyUI 佈局插件 - Tabs 標籤頁/選項卡


jQuery EasyUI 插件 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.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');
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 插件 jQuery EasyUI 插件