jQuery EasyUI 佈局插件 - Panel 面板
jQuery EasyUI 插件
通過 $.fn.panel.defaults 重寫默認的 defaults。
面板(panel)當做其他內容的容器使用。它是創建其他組件(比如:Layout 佈局、Tabs 標籤頁/選項卡、Accordion 折疊面板,等等)的基礎組件。它也提供內置的可折疊、可關閉、可最大化、可最小化的行為以及其他自定義行為。面板(panel)可以簡單地嵌入到網頁的任何位置。
用法
創建面板(Panel)
1、通過標記創建面板(Panel)
從標記創建面板(Panel)更容易。把 'easyui-panel' class 添加到 <div> 標記。
<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、編程創建面板(Panel)
讓我們創建帶右上角工具欄的面板(Panel)。
<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')}
}]
});
移動面板(Panel)
調用 'move' 方法把面板(Panel)移動到新位置。
$('#p').panel('move',{
left:100,
top:100
});
加載內容
讓我們通過 ajax 加載面板(panel)內容並且當加載成功時顯示一些資訊。
$('#p').panel({
href:'content_url.php',
onLoad:function(){
alert('loaded successfully');
}
});
屬性
| 名稱 | 類型 | 描述 | 默認值 |
|---|---|---|---|
| id | string | 面板(panel)的 id 屬性。 | null |
| title | string | 顯示在面板(panel)頭部的標題文字。 | null |
| iconCls | string | 在面板(panel)裏顯示一個 16x16 圖示的 CSS class。 | null |
| width | number | 設置面板(panel)的寬度。 | auto |
| height | number | 設置面板(panel)的高度。 | auto |
| left | number | 設置面板(panel)的左邊位置。 | null |
| top | number | 設置面板(panel)的頂部位置。 | null |
| cls | string | 給面板(panel)添加一個 CSS class。 | null |
| headerCls | string | 給面板(panel)頭部添加一個 CSS class。 | null |
| bodyCls | string | 給面板(panel)主體添加一個 CSS class。 | null |
| style | object | 給面板(panel)添加自定義格式的樣式。 改變面板(panel)邊框寬度的代碼實例:
<div class="easyui-panel" style="width:200px;height:100px"
data-options="style:{borderWidth:2}">
</div>
|
{} |
| fit | boolean | 當設置為 true 時,面板(panel)的尺寸就適應它的父容器。下麵的實例演示了自動調整尺寸到它的父容器的最大內部尺寸的面板(panel)。
<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 | 定義了是否顯示面板(panel)的邊框。 | true |
| doSize | boolean | 如果設置為 true,創建時面板(panel)就調整尺寸並做成佈局。 | true |
| noheader | boolean | 如果設置為 true,面板(panel)的頭部將不會被創建。 | false |
| content | string | 面板(panel)主體內容。 | null |
| collapsible | boolean | 定義是否顯示折疊按鈕。 | false |
| minimizable | boolean | 定義是否顯示最小化按鈕。 | false |
| maximizable | boolean | 定義是否顯示最大化按鈕。 | false |
| closable | boolean | 定義是否顯示關閉按鈕。 | false |
| tools | array,selector | 自定義工具組,可能的值: 1、數組,每個元素包含 iconCls 和 handler 兩個屬性。 2、選擇器,指示工具組。 面板(panel)工具組可通過已存在 <div> 標籤聲明:
<div class="easyui-panel" style="width:300px;height:200px"
title="My Panel" data-options="iconCls:'icon-ok',tools:'#tt'">
</div>
<div id="tt">
<a href="#" class="icon-add" onclick="javascript:alert('add')"></a>
<a href="#" class="icon-edit" onclick="javascript:alert('edit')"></a>
</div>
面板(panel)工具組可通過數組定義:
<div class="easyui-panel" style="width:300px;height:200px"
title="My Panel" data-options="iconCls:'icon-ok',tools:[
{
iconCls:'icon-add',
handler:function(){alert('add')}
},{
iconCls:'icon-edit',
handler:function(){alert('edit')}
}]">
</div>
|
[] |
| collapsed | boolean | 定義初始化面板(panel)是不是折疊的。 | false |
| minimized | boolean | 定義初始化面板(panel)是不是最小化的。 | false |
| maximized | boolean | 定義初始化面板(panel)是不是最大化的。 | false |
| closed | boolean | 定義初始化面板(panel)是不是關閉的。 | false |
| href | string | 一個 URL,用它加載遠程數據並且顯示在面板(panel)裏。請注意,除非面板(panel)打開,否則內容不會被加載。這對創建一個惰性加載的面板(panel)很有用:
<div id="pp" class="easyui-panel" style="width:300px;height:200px"
data-options="href='get_content.php',closed:true">
</div>
<a href="#" onclick="javascript:$('#pp').panel('open')">Open</a>
|
null |
| cache | boolean | 設置為 true 就緩存從 href 加載的面板(panel)內容。 | true |
| loadingMessage | string | 當加載遠程數據時在面板(panel)裏顯示一條資訊。 | 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 | 面板(panel)打開前觸發,返回 false 就停止打開。 |
| onOpen | none | 面板(panel)打開後觸發。 |
| onBeforeClose | none | 面板(panel)關閉前觸發,返回 false 就取消關閉。下麵聲明的面板(panel)不會關閉。
<div class="easyui-panel" style="width:300px;height:200px;"
title="My Panel" data-options="onBeforeClose:function(){return false}">
The panel cannot be closed.
</div>
|
| onClose | none | 面板(panel)關閉後觸發。 |
| onBeforeDestroy | none | 面板(panel)銷毀前觸發,返回false就取消銷毀。 |
| onDestroy | none | 面板(panel)銷毀後觸發。 |
| onBeforeCollapse | none | 面板(panel)折疊前觸發,返回false就停止折疊。 |
| onCollapse | none | 面板(panel)折疊後觸發。 |
| onBeforeExpand | none | 面板(panel)展開前觸發,返回false就停止展開。 |
| onExpand | none | 面板(panel)展開後觸發。 |
| onResize | width, height | 面板(panel)調整尺寸後觸發。 width:新的外部寬度 height:新的外部高度 |
| onMove | left,top | 面板(panel)移動後觸發。 left:新的左邊位置 top:新的頂部位置 |
| onMaximize | none | 窗口最大化後觸發。 |
| onRestore | none | 窗口還原為它的原始尺寸後觸發。 |
| onMinimize | none | 窗口最小化後觸發。 |
方法
| 名稱 | 參數 | 描述 |
|---|---|---|
| options | none | 返回選項(options)屬性(property)。 |
| panel | none | 返回外部面板(panel)對象。 |
| header | none | 返回面板(panel)頭部對象。 |
| body | none | 返回面板(panel)主體對象。 |
| setTitle | title | 設置頭部的標題文本。 |
| open | forceOpen | 當 forceOpen 參數設置為 true 時,就繞過 onBeforeOpen 回調函數打開面板(panel)。 |
| close | forceClose | 當 forceClose 參數設置為 true 時,就繞過 onBeforeClose 回調函數關閉面板(panel)。 |
| destroy | forceDestroy | 當 forceDestroy 參數設置為 true 時,就繞過 onBeforeDestroy 回調函數銷毀面板(panel)。 |
| refresh | href | 刷新面板(panel)加載遠程數據。如果分配了 'href' 參數,將重寫舊的 'href' 屬性。 代碼實例:
// open a panel and then refresh its contents.
$('#pp').panel('open').panel('refresh');
// refresh contents with a new URL.
$('#pp').panel('open').panel('refresh','new_content.php');
|
| resize | options | 設置面板(panel)尺寸並做佈局。Options 對象包含下列屬性: width:新的面板(panel)寬度 height:新的面板(panel)寬度 left:新的面板(panel)左邊位置 top:新的面板(panel)頂部位置 代碼實例:
$('#pp').panel('resize',{
width: 600,
height: 400
});
|
| move | options | 移動面板(panel)到新位置。Options 對象包含下列屬性: left:新的面板(panel)左邊位置 top:新的面板(panel)頂部位置 |
| maximize | none | 面板(panel)適應它的容器的尺寸。 |
| minimize | none | 最小化面板(panel)。 |
| restore | none | 把最大化的面板(panel)還原為它原來的尺寸和位置。 |
| collapse | animate | 折疊面板(panel)主體。 |
| expand | animate | 展開面板(panel)主體。 |
jQuery EasyUI 插件
