JQuery EasyUI Tabs

Tabs

选项卡显示一组面板。它一次只显示一个选项卡面板。每个选项卡面板都有标题标题和一些迷你按钮工具,包括关闭按钮和其他自定义按钮。
在这里插入图片描述
JQuery EasyUI需要引入的文件有如下4个:

<!-- jquery核心库 -->
<script type="text/javascript" src="easyui/jquery.min.js"></script> 

<!-- easyui核心库 --> 
<script type="text/javascript" src="easyui/jquery.easyui.min.js"></script>

<!-- easyui核心UI文件 css -->  
<link href="easyui/themes/default/easyui.css" rel="stylesheet" type="text/css"/>

<!-- easyui图标 -->
<link href="easyui/themes/icon.css" rel="stylesheet" type="text/css"/>

JQuery核心库一定要放在easyui核心库前面引入,不然JQuery.easyui.min.js中会报错:JQuery is not defined。

有的时候,我们需要进行国际化,比如一些提醒、日历等,就需要引入easyui的国际化文件,代码如下:

<!-- Easyui国际化文件 --> 
<script type="text/javascript" src="../resource/js/jquery-easyui-1.5/locale/easyui-lang-zh_CN.js"></script>

Tabs的定义
通过标记创建标签页(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>

编程创建标签页(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)对象 

自定义Tabs

<div id="index_tabs" style="overflow: hidden;">
	<div title="首页" data-options="border:false" style="overflow: hidden;">
	</div>
</div>

自定义添加Tabs的方法
iframe标签创建包含另一个文档的行内框架

function addTab(params) {
	var iframe = '<iframe src="'
			+ params.url
			+ '" frameborder="0" style="border:0;width:100%;height:99.5%;"></iframe>';
	var t = $('#index_tabs');
	var opts = {
		title : params.title,
		closable : true,
		iconCls : params.iconCls,
		content : iframe,
		border : false,
		fit : true
	};
	if (t.tabs('exists', opts.title)) {
		t.tabs('select', opts.title);     //如果标签页已经存在 就初始化选中已经存在的
	} else {
		t.tabs('add', opts);    //如果标签页不存在  就添加标签页
	}
}

添加Tabs

layout_west_tree = $('#layout_west_tree').tree(
				{
					url : '${path }/admin/resource/tree',
					parentField : 'pid',
					lines : false,
					onClick : function(node) {
						var url = node.attributes;
						url = url == null ? "" : url;
						if (url.indexOf("http") >= 0) {   //indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置
							addTab({
								url : url,
								title : node.text,
								iconCls : node.iconCls
							});
						} else if (url) {
							url = '${path }' + node.attributes;
							addTab({
								url : url,
								title : node.text,
								iconCls : node.iconCls
							});
						} else {
							layout_west_tree.tree('toggle', node.target);   //切换节点的展开/折叠状态,target 参数表示节点的 DOM 对象
						}

				},
				onLoadSuccess : function(node, data) {
					$(this).tree('collapseAll');   //折叠所有节点。
				},
				onExpand : function(node) { //在节点展开的时候触发,判断点击的是不是同个节点,如果是就关闭同个节点。不是就打开新节点,找到并关闭上次节点。
					if (layout_west_tree_prenode != node.id) {
						var preNode = layout_west_tree.tree('find', layout_west_tree_prenode); //查找指定节点并返回节点对象。
						if (preNode != null) {
							layout_west_tree.tree('collapse', preNode.target);  //折叠一个节点,'target'参数表示节点的DOM对象
						}
					}
					layout_west_tree_prenode = node.id;
				}
			});

Tabs的属性

名称类型描述默认值
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>。

代码实例:
通过数组定义工具。
     
  1. $('#tt').tabs({
  2. tools:[{
  3. iconCls:'icon-add',
  4. handler:function(){
  5. alert('add')
  6. }
  7. },{
  8. iconCls:'icon-save',
  9. handler:function(){
  10. alert('save')
  11. }
  12. }]
  13. });
通过已有的 DOM 容器定义工具。
     
  1. $('#tt').tabs({
  2. tools:'#tab-tools'
  3. });
  4. <div id="tab-tools">
  5. <a href="#" class="easyui-linkbutton" plain="true" iconCls="icon-add"></a>
  6. <a href="#" class="easyui-linkbutton" plain="true" iconCls="icon-save"></a>
  7. </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

Tabs的事件

名称参数描述
onLoadpanel当一个 ajax 标签页面板(tab panel)完成加载远程数据时触发。
onSelecttitle,index当用户选择一个标签页面板(tab panel)时触发。
onUnselecttitle,index当用户未选择一个标签页面板(tab panel)时触发。该事件自版本 1.3.5 起可用。
onBeforeClosetitle,index当一个标签页面板(tab panel)被关闭前触发,返回 false 就取消关闭动作。下面的实例演示如何在关闭标签页面板(tab panel)前显示确认对话框。
     
  1. $('#tt').tabs({
  2. onBeforeClose: function(title){
  3. return confirm('Are you sure you want to close ' + title);
  4. }
  5. });
  6. // using the async confirm dialog
  7. $('#tt').tabs({
  8. onBeforeClose: function(title,index){
  9. var target = this;
  10. $.messager.confirm('Confirm','Are you sure you want to close '+title,function(r){
  11. if (r){
  12. var opts = $(target).tabs('options');
  13. var bc = opts.onBeforeClose;
  14. opts.onBeforeClose = function(){}; // allowed to close now
  15. $(target).tabs('close',index);
  16. opts.onBeforeClose = bc; // restore the event function
  17. }
  18. });
  19. return false; // prevent from closing
  20. }
  21. });
onClosetitle,index当用户关闭一个标签页面板(tab panel)时触发。
onAddtitle,index当一个新的标签页面板(tab panel)被添加时触发。
onUpdatetitle,index当一个标签页面板(tab panel)被更新时触发。
onContextMenue, title,index当一个标签页面板(tab panel)被右键点击时触发。

Tabs的方法

名称参数描述
optionsnone返回标签页(tabs)选项(options)。
tabsnone返回全部的标签页面板(tab panel)。
resizenone调整标签页(tabs)容器的尺寸并做布局。
addoptions添加一个新的标签页面板(tab panel),options 参数是一个配置对象,更多详细信息请参见标签页面板(tab panel)属性。
当添加一个新的标签页面板(tab panel)时,它将被选中。
如需添加一个未选中的标签页面板(tab panel),请记得设置 'selected' 属性为 false。
     
  1. // add a unselected tab panel
  2. $('#tt').tabs('add',{
  3. title: 'new tab',
  4. selected: false
  5. //...
  6. });
closewhich关闭一个标签页面板(tab panel),'which' 参数可以是要被关闭的标签页面板(tab panel)的标题(title)或索引(index)。
getTabwhich获取指定的标签页面板(tab panel),'which' 参数可以是标签页面板(tab panel)的标题(title)或索引(index)。
getTabIndextab获取指定的标签页面板(tab panel)索引。
getSelectednone获取选中的标签页面板(tab panel)。下面的实例演示如何获取选中的标签页面板(tab panel)的索引。
     
  1. var tab = $('#tt').tabs('getSelected');
  2. var index = $('#tt').tabs('getTabIndex',tab);
  3. 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)。

代码实例:
     
  1. // update the selected panel with new title and content
  2. var tab = $('#tt').tabs('getSelected'); // get selected panel
  3. $('#tt').tabs('update', {
  4. tab: tab,
  5. options: {
  6. title: 'New Title',
  7. href: 'get_content.php' // the new content URL
  8. }
  9. });
  10.  
  11. // call 'refresh' method for tab panel to update its content
  12. var tab = $('#tt').tabs('getSelected'); // get selected panel
  13. tab.panel('refresh', 'get_content.php');
enableTabwhich启用指定的标签页面板(tab panel),'which' 参数可以是标签页面板(tab panel)的标题(title)或索引(index)。该方法自版本 1.3 起可用。

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

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

代码实例:
     
  1. // scroll the tab header to left
  2. $('#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

Tabs附加属性

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值