昨天介紹了easyui的基本使用與easyloader方式載入架構,今天來說說他們的原理以及panel架構的使用:
easyui可以直接html的方式,寫一個類,型如 class="easyui-dialog" 的方式,就可以直接載入出easyui的樣式,究其原因,是因為parser的存在,我們開啟下的easyui代碼,裡面有個plugins檔案夾,裡面有檔案:jquery.parser.js ;這個JS檔案裡面就是以 class="easyui-dialog" 的方式載入各種sasyui架構樣式的,當然裡面是迴圈渲染的;代碼如下:
1 $.parser = { auto: true, onComplete: function (_1) {
2 }, plugins: ["draggable", "droppable", "resizable", "pagination", "linkbutton", "menu", "menubutton", "splitbutton", "progressbar", "tree", "combobox", "combotree", "combogrid", "numberbox", "validatebox", "searchbox", "numberspinner", "timespinner", "calendar", "datebox", "datetimebox", "slider", "layout", "panel", "datagrid", "propertygrid", "treegrid", "tabs", "accordion", "window", "dialog"], parse: function (_2) {
3 var aa = [];
4 for (var i = 0; i < $.parser.plugins.length; i++) {
5 var _3 = $.parser.plugins[i];
6 var r = $(".easyui-" + _3, _2);
7 if (r.length) {
8 if (r[_3]) {
9 r[_3]();
10 } else {
11 aa.push({ name: _3, jq: r });
12 }
13 }
14 }
再有就是easyloader的載入方式,在其easyloader.js檔案中,有其載入各個架構組件的方法(以dialog為例):
1 dialog: {
2 js: "jquery.dialog.js", //載入dialog的js檔案
3 css: "dialog.css", //載入dialog的css樣式檔案
4 dependencies: ["linkbutton", "window"]//因為dialog需要window和linkbutton樣式,所以這裡關聯著這兩個架構組件
5 }
1 //最後調用parser的方法,使其可以直接以 class="easyui-dialog" 的方式顯示架構,也可以用easyloader專屬的方式載入
2 window.using = easyloader.load;
3 if (window.jQuery) {
4 jQuery(function () {
5 easyloader.load("parser", function () {
6 jQuery.parser.parse();
7 });
8 });
panel架構的用法:
1 <script type="text/javascript">
2 $(function () {
3 $('#p').panel({
4 width: 500,
5 height: 150,
6 title: 'My Panel', //控制台名標題
7 iconCls: 'icon-add', //控制台標題旁邊的圖片 由icon.css檔案得來
8 tools: [{//
9 iconCls: 'icon-add', //右上方表徵圖及點擊觸發事件
10 handler: function () { alert('new') }
11 }, {
12 iconCls: 'icon-save', //右上方表徵圖及點擊觸發事件
13 handler: function () { alert('save') }
14 }]
15 });
16 });
17 </script>
18 </head>
19 <body>
20 <div id="p" style="padding: 10px;">
21 <p>
22 panel content.</p>
23 <p>
24 panel content.</p>
25 </div>
26 </body>