1. 程式人生 > >jQuery EasyUI 教程-Tabs(選項卡)

jQuery EasyUI 教程-Tabs(選項卡)

使用$.fn.tabs.defaults重寫預設值物件。

選項卡顯示一批面板。但在同一個時間只會顯示一個面板。每個選項卡面板都有頭標題和一些小的按鈕工具選單,包括關閉按鈕和其他自定義按鈕。

jQuery EasyUI 教程-Tabs

使用案例:

建立面板

通過標籤和Javascript兩種方法來建立選項卡。

1、 通過標籤建立選項卡

通過標籤可以更容易的建立選項卡,我們不需要寫任何Javascript程式碼。只需要給<div/>標籤新增一個類ID’easyui-tabs’。每個選項卡面板都通過子<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、通過Javascript建立選項卡

下面的程式碼演示如何使用Javascript建立選項卡,當該選項卡被選擇時將會觸發’onSelect’事件。

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

新增新的選項卡面板

新增一個新的包含小工具選單的選項卡面板,小工具選單圖示(8×8)被放置在關閉按鈕之前。

// add a new tab panel
$(‘#tt’).tabs(‘add’,{
title:’New Tab’,
content:’Tab Body’,
closable:true,
tools:[{
iconCls:’icon-mini-refresh’,
handler:function(){
alert(‘refresh’);
}
}]
});

獲取選擇的選項卡

// get the selected tab panel and its tab object
var pp = $(‘#tt’).tabs(‘getSelected’);
var tab = pp.panel(‘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/>容器工具選單的選擇器。程式碼示例:通過陣列定義工具選單。
$('#tt').tabs({
	tools:[{
		iconCls:'icon-add',
		handler:function(){
			alert('新增')
		}
	},{
		iconCls:'icon-save',
		handler:function(){
			alert('儲存')
		}
	}]
});

通過存在的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 選項卡位置。可用值:’top’,’bottom’,’left’,’right’。(該屬性自1.3.2版開始可用) top
headerWidth number 選項卡標題寬度,在tabPosition屬性設定為’left’或’right’的時候才有效。(該屬性自1.3.2版開始可用) 150
tabWidth number 標籤條的寬度。(該屬性自1.3.4版開始可用) auto
tabHeight number 標籤條的高度。(該屬性自1.3.4版開始可用) 27
selected number 初始化選中一個tab頁。(該屬性自1.3.5版開始可用) 0
showHeader boolean 設定為true時,顯示tab頁標題。(該屬性自1.3.5版開始可用) true

事件:

事件名事件引數描述
onLoad panel 在ajax選項卡面板載入完遠端資料的時候觸發。
onSelect title,index 使用者在選擇一個選項卡面板的時候觸發。
onUnselect title,index 使用者在取消選擇一個選項卡面板的時候觸發。(該屬性自1.3.5版開始可用)
onBeforeClose title,index 在選項卡面板關閉的時候觸發,返回false取消關閉操作。下面的例子展示了在關閉選項卡面板之前以何種方式顯示確認對話方塊。
$('#tt').tabs({
  onBeforeClose: function(title){
	return confirm('您確認想要關閉 ' + title);
  }
});
// 使用非同步確認對話方塊
$('#tt').tabs({
  onBeforeClose: function(title,index){
   var target = this;
     $.messager.confirm('確認','你確認想要關閉'+title,function(r){
	if (r){
			var opts = $(target).tabs('options');
			var bc = opts.onBeforeClose;
			opts.onBeforeClose = function(){};  //
 允許現在關閉
			$(target).tabs('close',index);
			opts.onBeforeClose = bc;  // 還原事件函式
		}
	});
	return false;	// 阻止關閉
  }
});
onClose title,index 在使用者關閉一個選項卡面板的時候觸發。
onAdd title,index 在新增一個新選項卡面板的時候觸發。
onUpdate title,index 在更新一個選項卡面板的時候觸發。
onContextMenu e, title,index 在右鍵點選一個選項卡面板的時候觸發。

方法:

方法名方法引數描述
options none 返回選項卡屬性。
tabs none 返回所有選項卡面板。
resize none 調整選項卡容器大小和佈局。
add options 新增一個新選項卡面板,選項引數是一個配置物件,檢視選項卡面板屬性的更多細節。在新增一個新選項卡面板的時候它將變成可選的。
新增一個非選中狀態的選項卡面板時,記得設定’selected’屬性為false。
// 新增一個未選中狀態的選項卡面板
$('#tt').tabs('add',{
	title: '新選項卡面板',
	selected: false
	//...
});
close which 關閉一個選項卡面板,’which’引數可以是選項卡面板的標題或者索引,以指定要關閉的面板。
getTab which 獲取指定選項卡面板,’which’引數可以是選項卡面板的標題或者索引。
getTabIndex tab 獲取指定選項卡面板的索引。
getSelected none 獲取選擇的選項卡面板。下面的例子展示瞭如何獲取選擇的選項卡面板索引。
var tab = $('#tt').tabs('getSelected');
var index = $('#tt').tabs('getTabIndex',tab);
alert(index);
select which 選擇一個選項卡面板,’which’引數可以是選項卡面板的標題或者索引。
unselect which 取消選擇一個選項卡面板,’which’引數可以是選項卡面板的標題或者索引。(該方法自1.3.5版開始可用)
showHeader none 顯示選項卡的標籤頭。(該方法自1.3.5版開始可用)
hideHeader none 隱藏選項卡的標籤頭。(該方法自1.3.5版開始可用)
exists which 表明指定的面板是否存在,’which’引數可以是選項卡面板的標題或索引。
update param 更新指定的選項卡面板,’param’引數包含2個屬性:
tab:要更新的選項卡面板。
options:面板的屬性。程式碼示例:
// 更新選擇的面板的新標題和內容
var tab = $('#tt').tabs('getSelected');  // 獲取選擇的面板
$('#tt').tabs('update', {
	tab: tab,
	options: {
		title: '新標題',
		href: 'get_content.php'  // 新內容的URL
	}
});
// 呼叫 'refresh' 方法更新選項卡面板的內容
var tab = $('#tt').tabs('getSelected');  // 獲取選擇的面板
tab.panel('refresh', 'get_content.php');
enableTab which 啟用指定的選項卡面板,’which’引數可以是選項卡面板的標題或索引。(該方法自1.3版開始可用)程式碼示例:
$('#tt').tabs('enableTab', 1);            // 啟用第二個選項卡面板
$('#tt').tabs('enableTab', 'Tab2');     // 啟用標題為Tab2的選項卡面板
disableTab which 禁用指定的選項卡面板,’which’引數可以是選項卡面板的標題或索引。(該方法自1.3版開始可用)程式碼示例:$(‘#tt’).tabs(‘disableTab’, 1); // 禁用第二個選項卡面板
scrollBy deltaX 滾動選項卡標題指定的畫素數量,負值則向右滾動,正值則向左滾動。(該方法自1.3版開始可用)程式碼示例:
// 滾動選項卡標題到左邊
$('#tt').tabs('scroll', 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

轉載自:http://www.html5wd.com/archives/1294.html