使用$.fn.panel.defaults重载默认值。
panel是使用最为其他内容的一个容器,是一个用于构建其他组件的基础组件,例如layout,tabs,accordion,等等。也提供内置的collapsible(可折叠的), closable(可关闭的),maximizable(可最大化),minimizable(可最小化的) 行为,和一些自定义行为,panel可以很容易的嵌入网页的任何位置。
1. 使用标签创建控制面板
使用标签创建控制面板十分简单,只须要对<div>标签引用'easyui-panel'类。
<div id="p" class="easyui-panel" title="My Panel" style="width:500px;height:150px;padding:10px;background:#fafafa;" data-options="iconCls:'icon-save',closable:true,collapsible:true,minimizable:true,maximizable:true"> <p>panel content.</p> <p>panel content.</p> </div>
2. 使用脚本创建控制面板
下面的代码将创建一个工具栏在右上方的控制面板。
<div id="p" style="padding:10px;">
<p>panel content.</p>
<p>panel content.</p>
</div>
$('#p').panel({
width:500,
height:150,
title: 'My Panel',
tools: [{
iconCls:'icon-add',
handler:function(){alert('new')}
},{
iconCls:'icon-save',
handler:function(){alert('save')}
}]
});
调用'move'方法可以将控制面板移动到一个新的位置。
$('#p').panel('move',{
left:100,
top:100
});
下面的代码将使用ajax载入控制面板内容并且在载入成功时显示信息。
$('#p').panel({
href:'content_url.php',
onLoad:function(){
alert('loaded successfully');
}
});
| 名称 | 类型 | 描述 | 默认值 |
|---|---|---|---|
| id | string(字符串) | 当前pannel的id属性。 | null |
| title(标题) | string(字符串) | 显示在控制面板顶部的标题文本。 | null |
| iconCls(图标CSS类) | string(字符串) | 在控制面板标题前显示一个16x16大小图标的CSS类。 | null |
| width(宽度) | number(数字) | 设置控制面板的宽度。 | auto |
| height(高度) | number(数字) | 设置控制面板的高度。 | auto |
| left(左边距) | number(数字) | 设置控制面板的左边距。 | null |
| top(顶边距) | number(数字) | 设置控制面板的顶边距。 | null |
| cls(类) | string(字符串) | 对控制面板引用一个CSS类。 | null |
| headerCls(头部css类) | string(字符串) | 对控制面板头部引用一个CSS类。 | null |
| bodyCls(主体类) | string(字符串) | 对控制面板主体引用一个CSS类。 | null |
| style(样式) | object(对象) | 给控制面板添加一个自定义的样式。
<div class="easyui-panel" style="width:200px;
height:100px" data-options="style:{borderWidth:2}">
</div>
|
{} |
| fit(铺满浏览器) | boolean(布尔型) | 设置为true时,控制面板的大小将铺满它所在的容器(浏览器)。
<div style="width:200px;height:100px;padding:5px">
<div class="easyui-panel" style="width:200px;height:100px"
data-options="fit:true,border:false">
Embedded Panel
</div>
</div>
|
false |
| border(边框) | boolean(布尔型) | 定义是否显示控制面板边框。 | true |
| doSize(调整大小) | boolean(布尔型) | 如果设置为true,在控制面板被创建时将被重置大小并且自动布局。 | true |
| noheader(无头部) | boolean(布尔型) | 如果设置为true,控制面板头部将不被创建。 | false |
| content(内容) | string(字符串) | 控制面板主体的内容。 | null |
| collapsible(可折叠) | boolean(布尔型) | 定义是否显示可折叠按钮。 | false |
| minimizable(最小化) | boolean(布尔型) | 定义是否显示最小化按钮。 | false |
| maximizable(最大化) | boolean(布尔型) | 定义是否显示最大化按钮。 | false |
| closable(关闭) | boolean(布尔型) | 定义是否显示关闭按钮。 | false |
| tools(工具栏) | array(数组) | 自定义工具栏,每一个工具都可以包含2个属性:图标类 和句柄。 | [] |
| collapsed(已折叠) | boolean(布尔型) | 定义控制面板初始化时是否折叠。 | false |
| minimized(已最小化) | boolean(布尔型) | 定义控制面板初始化时是否最小化。 | false |
| maximized(已最大化) | boolean(布尔型) | 定义控制面板初始化时是否最大化。 | false |
| closed(已关闭) | boolean(布尔型) | 定义控制面板初始化时是否关闭。 | false |
| href(超链接) | string(字符串) | 载入远程数据的超链接,载入的数据将显示在控制面板中。 | null |
| cache(缓存) | boolean(布尔型) | 如果设置为true,从超链接载入的数据将被缓存。 | true |
| loadingMessage(载入时信息) | string(字符串) | 在正在载入远程数据时显示在控制面板中的信息。 | Loading… |
| extractor(提取器) | function(函数) | 定义如何从ajax返回值中提取内容,返回被提取的数据。
extractor: function(data){
var pattern = /<body[^>]*>((.|[\n\r])*)<\/body>/im;
var matches = pattern.exec(data);
if (matches){
return matches[1]; // only extract body content
} else {
return data;
}
}
|
| 名称 | 参数 | 描述 |
|---|---|---|
| onLoad | none | 在远程数据被载入时触发。 |
| onBeforeOpen | none | 在控制面板被打开之前触发,返回false将停止打开。 |
| onOpen | none | 在控制面板被打开之后触发。 |
| onBeforeClose | none | 在控制面板被关闭之前触发,返回false将取消关闭。 |
| onClose | none | 在控制面板被关闭后触发。 |
| onBeforeDestroy | none | 在控制面板被注销前触发,返回false将取消注销。 |
| onDestroy | none | 在控制面板被注销后触发。 |
| onBeforeCollapse | none | 在控制面板被折叠之前触发,返回false将停止折叠。 |
| onCollapse | none | 在控制面板被折叠之后触发。 |
| onBeforeExpand | none | 在控制面板被扩展之前触发,返回false将停止扩展(这里应该是指扩展区域,宽、高等)。 |
| onExpand | none | 在控制面板被扩展之后触发。 |
| onResize | width, height | 在控制面板被缩放后触发。 width: 新的控制面板宽度 height:新的控制面板高度 |
| onMove | left,top | 在控制面板被移动后触发。 left:新的控制面板左边距 top:新的控制面板顶边距 |
| onMaximize | none | 在控制面板被最大化后触发 |
| onRestore | none | 在控制面板被重置为初始大小后触发。 |
| onMinimize | none | 在控制面板被最小化后触发。 |
| 名称 | 参数 | 描述 |
|---|---|---|
| options | none | 返回选项属性。 |
| panel | none | 返回控制面板对象。 |
| header | none | 返回控制面板头对象。 |
| body | none | 返回控制面板主体对象。 |
| setTitle | title | 设置控制面板头部的标题文本。 |
| open | forceOpen | 当参数forceOpen设置为true时,控制面板将被打开,不受onBeforeOpen回调函数的约束。 |
| close | forceClose | 当参数forceClose设置为true时, 控制面板将被打开,不受onBeforeClose回调函数的约束。 |
| destroy | forceDestroy | 当参数forceDestroy设置为true时,控制面板将被打开,不受onBeforeDestroy回调函数的约束。 |
| refresh | href | 当href属性被设置时,刷新控制面板以载入远程数据。 |
| resize | options | 这是控制面板的尺寸并且进行布局。options对象包含以下2个属性: width: 新的控制面板宽度 height: 新的控制面板高度 left: 新的控制面板左边距 top: 新的控制面板顶边距 |
| move | options | 移动控制面板到一个新的位置。options对象包含以下2个属性: left: 新的控制面板左边距 top: 新的控制面板顶边距 |
| maximize | none | 使控制面板铺满整个容器。 |
| minimize | none | 最小化控制面板。 |
| restore | none | 使最大化的控制面板重置为其初始化时的大小和位置。 |
| collapse | animate | 折叠控制面板主体。 |
| expand | animate | 扩展控制面板主体。 |
使用$.fn.tabs.defaults重载默认值。
tabs显示一个panel的集合,每一次仅仅只是显示一个tab panel,所有tab panel都有标题和一些小的工具按钮,包含close按钮和其他自定义按钮。
1. 使用HTML标签创建选项卡
使用HTML标签创建选项卡十分简单,不需要写任何javascript代码,只需要<div>标签引用'easyui-panel'类。每个选项卡面板都可以使用闭合的<div>标签对创建,使用方法跟创建控制面板一样。
<div id="tt" class="easyui-tabs" style="width:500px;height:250px;">
<div title="Tab1" style="padding:20px;display:none;">
tab1
</div>
<div title="Tab2" closable="true" style="overflow:auto;padding:20px;display:none;">
tab2
</div>
<div title="Tab3" iconCls="icon-reload" closable="true" style="padding:20px;display:none;">
tab3
</div>
</div>
2. 使用脚本创建选项卡
下面的代码演示如何使用脚本创建选项卡,当该选项卡被选择时将会触发'onSelect'事件。
$('#tt').tabs({
border:false,
onSelect:function(title){
alert(title+' is selected');
}
});
//添加一个选项卡面板
$('#tt').tabs('add',{
title:'New Tab',
content:'Tab Body',
closable:true
});
//获取当前被选择的选项卡以及相应的选项卡对象
var pp = $('#tt').tabs('getSelected');
var tab = pp.panel('options').tab; //相应的选项卡对象
| 名称 | 类型 | 描述 | 默认值 |
|---|---|---|---|
| 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(数组) | 控制面板右侧的工具栏,每个工具选项都跟链接按钮一样。 | null |
| 名称 | 参数 | 描述 |
|---|---|---|
| onLoad | panel | 当一个选项卡完成ajax远程载入对象时触发。 |
| onSelect | title | 当用户选择一个选项卡时触发。 |
| onBeforeClose | title | 在一个选项卡被关闭之前触发,返回false将取消关闭。 |
| onClose | title | 在用户关闭一个选项卡面板后触发。 |
| onAdd | title | 在一个选项卡面板被添加后触发。 |
| onUpdate | title | 在一个选项卡面板被更新后触发。 |
| enableTab | which | 启用一个特定的 tab panel,'which' 参数可以是tab panel的title(标题)或者是index(下标)。
$('#tt').tabs('enableTab', 1); //启用第二个tab panel
$('#tt').tabs('enableTab', 'Tab2');//启用标题为'Tab2'的tab panel
这个方法从1.3版本以后可用。
|
| disableTab | which | 禁用特定的 tab panel, 'which' 参数可以是tab panel的title(标题)或者index(下标)。
$('#tt').tabs('disableTab', 1); //禁用第二个tab pane
这个方法从1.3版本以后可用。
|
| onContextMenu | e, title | 在一个选项卡面板被鼠标右键单击后触发。 |
| 名称 | 参数 | 描述 |
|---|---|---|
| options | none | 返回选项卡属性对象。 |
| tabs | none | 返回所有的选项卡面板。 |
| resize | none | 重置选项卡容器(控制面板)大小并且自动布局。 |
| add | options | 添加一个新的选项卡面板,options参数是一个可以配置的对象,查看选项卡控制面板属性获取更多信息。 |
| close | title | 关闭一个选项卡面板,title参数表示哪个选项卡将被关闭。 |
| getTab | title | 获取特定的选项卡面板名称。 |
| getSelected | none | 获取被选择的选项卡面板名称。 |
| select | title | 选择一个选项卡面板。 |
| exists | title | 验证一个特定的选项卡面板是否存在。 |
| update | param | 更新特定的选项卡面板,param参数包含2个属性: tab: 将被更新的选项卡。 options: 选项卡相关配置项。 |
| 名称 | 类型 | 描述 | 默认值 |
|---|---|---|---|
| title(标题) | string(字符串) | 选项卡面板的标题。 | |
| content(内容) | string(字符串) | 选项卡面板的内容。 | |
| href(超链接) | string(字符串) | 从超链接载入远程内容到选项卡 面板。 | null |
| cache(缓存) | boolean(布尔型) | 设置为true将缓存选项卡面板,当href(超链接)属性被设置时有效。 | true |
| iconCls(图标CSS类) | string(字符串) | 一个显示选项卡面板标题图标的CSS类。 | null |
| width(宽度) | number(数字) | 选项卡面板的宽度。 | auto |
| height(高度) | number(数字) | 选项卡面板的高度。 | auto |
其他一些属性
| 名称 | 类型 | 描述 | 默认值 |
|---|---|---|---|
| closable(可关闭) | boolean(布尔型) | 当这是为true时,选项卡面板将会显示一个关闭按钮, 点击该按钮将关闭选项卡。 |
false |
| selected(默认选项卡) | boolean(布尔型) | 当设置为true时,将会默认显示该选项卡下的内容。 | false |
使用$.fn.accordion.defaults重载默认值
accordion允许你提供提供多个panel每次显示一个,所有的内置的panel都内置支持展开(expanding)和折叠(collapsing),点击一个panel的头部展开或者折叠 这个panel的body,panel的内容可以通过ajax加载,通过一个特定的"href"属性。用户可以定义一个panel让其选中,如果没有定义,第一个panel是默认的。
使用html标签创建可伸缩面板,只须要对<div>标签引用'easyui-accordion'类。
使用HTML标签创建选项卡十分简单,不需要写任何javascript代码,只需要<div>标签引用'easyui-panel'类。每个选项卡面板都可以使用闭合的<div>标签对创建,使用方法跟创建控制面板一样。
<div id="aa" class="easyui-accordion" style="width:300px;height:200px;">
<div title="Title1" iconCls="icon-save" style="overflow:auto;padding:10px;">
<h3 style="color:#0099FF;">Accordion for jQuery</h3>
<p>Accordion is a part of easyui framework for jQuery.
It lets you define your accordion component on web page more easily.</p>
</div>
<div title="Title2" iconCls="icon-reload" selected="true" style="padding:10px;">
content2
</div>
<div title="Title3">
content3
</div>
</div>
在后面将介绍如何改变或者重建可伸缩面板以及修改一些特性。
$('#aa').accordion({
animate:false
});
//添加一个选项卡面板
$('#tt').tabs('add',{
title:'New Tab',
content:'Tab Body',
closable:true
});
调用'getSelected'方法获取当前面板(的名称),接着可以调用控制面板的'refresh'方法来载入新的内容。
var pp = $('#aa').accordion('getSelected'); //获取当前选择的可伸缩面板
if (pp){
pp.panel('refresh','new_content.php'); //调用'refresh'方法载入新内容
}
| 名称 | 类型 | 描述 | 默认值 |
|---|---|---|---|
| width(宽度) | number(数字) | 可伸缩面板所在容器的宽度。 | auto |
| height(高度) | number(数字) | 可伸缩面板所在容器的高度。 | auto |
| fit(铺满浏览器) | boolean(布尔型) | 如果设置为true,可伸缩面板所在容器将铺满它所在的父容器(浏览器) | false |
| border(边框) | boolean(布尔型) | 定义是否显示边框。 | true |
| animate(动画效果) | boolean(布尔型) | 定义当延伸或者折叠面板时是否显示动画效果。 | true |
可伸缩面板继承控制面板的属性,以下是额外的属性:
| 名称 | 类型 | 描述 | 默认值 |
|---|---|---|---|
| selected(被选择) | boolean(布尔型) | 设置为true将默认展开面板。 | false |
| 名称 | 参数 | 描述 |
|---|---|---|
| onSelect | title | 当一个可伸缩面板被选择时触发。 |
| onAdd | title | 在一个新面板被添加时触发。 |
| onBeforeRemove | title | 在可伸缩面板被移除之前触发,返回false将取消移除。 |
| onRemove | title | 在一个可伸缩面板被移除时触发。 |
| 名称 | 参数 | 描述 |
|---|---|---|
| options | none | 返回容器属性对象。 |
| panels | none | 获取所有的面板。 |
| resize | none | 重置可伸缩面板。 |
| getSelected | none | 获取被选择的面板。 |
| getPanel | title | 获取特定的可伸缩面板。 |
| getPanelIndex | panel | 得到特定的panel的下标。 下面的示例代码展示如何得到一个选中的panel的下标(index)。
var p = $('#aa').accordion('getSelected');
if (p){
var index = $('#aa').accordion('getPanelIndex', p);
alert(index);
}
这个方法从1.3版本以后可用。
|
| select | title | 选择特定的面板。 |
| add | options | 添加一个先的可伸缩面板。 |
| remove | title | 移除特定的面板。 |
使用$.fn.layout.defaults重载默认值
layout是一个容器,它有5个区域:north(北丐),south(南帝),east(东邪),west(西毒);center(中神通),像不像金庸的天龙八部,中间区域的panel是必须的,周边区域panel是可选项,所有周边区域的panel可以改变大小通过拖动边框,他们也可以折叠(collapse)通过点击触发折叠事件,布局可以嵌套,因此用户可以创建你想要的复杂布局。
使用HTML标签创建布局面板,只须要对<div>标签引用'easyui-layout'类。
<div id="cc" class="easyui-layout" style="width:600px;height:400px;">
<div region="north" title="North Title" split="true" style="height:100px;"></div>
<div region="south" title="South Title" split="true" style="height:100px;"></div>
<div region="east" iconCls="icon-reload" title="East" split="true" style="width:100px;"></div>
<div region="west" split="true" title="West" style="width:100px;"></div>
<div region="center" title="center title" style="padding:5px;background:#eee;"></div>
</div>
在整个页面创建布局面板。
<body class="easyui-layout"> <div region="north" title="North Title" split="true" style="height:100px;"></div> <div region="south" title="South Title" split="true" style="height:100px;"></div> <div region="east" iconCls="icon-reload" title="East" split="true" style="width:100px;"></div> <div region="west" split="true" title="West" style="width:100px;"></div> <div region="center" title="center title" style="padding:5px;background:#eee;"></div> </body>
$('#cc').layout();
//折叠左边的面板
$('#cc').layout('collapse','west');
| 名称 | 类型 | 描述 | 默认值 |
|---|---|---|---|
| title(标题) | string(字符串) | 布局面板的标题。 | null |
| region(区域) | string(字符串) | 定义布局面板的位置(方向),可以取下列值的其中之一:north, south, east, west, center。 | |
| border(边框) | boolean(布尔型) | 设置为true将显示布局面板的边框。 | true |
| split(分隔条) | boolean(布尔型) | 如果设置为true将显示一个分隔条,用户可以拖动分隔条来改变布局面板的尺寸。 | false |
| iconCls(图标CSS类) | string(字符串) | 一个用来显示布局面板头部图标的css类。 | null |
| href(超链接) | string(字符串) | 一个用来从远程站点载入数据的超链接。 | null |
| 名称 | 参数 | 描述 |
|---|---|---|
| resize | none | 设置布局面板的尺寸大小。 |
| panel | region | 返回特定的布局面板,'region'参数的可取值为: 'north','south','east','west','center'。 |
| collapse | region | 折叠特定的布局面板,'region'参数的可取值为:'north','south','east','west'。 |
| expand | region | 延伸特定的布局面板,'region'参数的可取值为:'north','south','east','west'。 |