使用$.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'。 |