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.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 插件其他扩展