`

easyUI中layout布局隐藏动态实现

阅读更多
对layout添加方法
<script>

    /**  
     * layout方法扩展  
     * @param {Object} jq  
     * @param {Object} region  
     */  
    $.extend($.fn.layout.methods, {   
        /**  
         * 面板是否存在和可见  
         * @param {Object} jq  
         * @param {Object} params  
         */  
        isVisible: function(jq, params) {   
            var panels = $.data(jq[0], 'layout').panels;   
            var pp = panels[params];   
            if(!pp) {   
                return false;   
            }   
            if(pp.length) {   
                return pp.panel('panel').is(':visible');   
            } else {   
                return false;   
            }   
        },   
        /**  
         * 隐藏除某个region,center除外。  
         * @param {Object} jq  
         * @param {Object} params  
         */  
        hidden: function(jq, params) {   
            return jq.each(function() {   
                var opts = $.data(this, 'layout').options;   
                var panels = $.data(this, 'layout').panels;   
                if(!opts.regionState){   
                    opts.regionState = {};   
                }   
                var region = params;   
                function hide(dom,region,doResize){   
                    var first = region.substring(0,1);   
                    var others = region.substring(1);   
                    var expand = 'expand' + first.toUpperCase() + others;   
                    if(panels[expand]) {   
                        if($(dom).layout('isVisible', expand)) {   
                            opts.regionState[region] = 1;   
                            panels[expand].panel('close');   
                        } else if($(dom).layout('isVisible', region)) {   
                            opts.regionState[region] = 0;   
                            panels[region].panel('close');   
                        }   
                    } else {   
                        panels[region].panel('close');   
                    }   
                    if(doResize){   
                        $(dom).layout('resize');   
                    }   
                };   
                if(region.toLowerCase() == 'all'){   
                    hide(this,'east',false);   
                    hide(this,'north',false);   
                    hide(this,'west',false);   
                    hide(this,'south',true);   
                }else{   
                    hide(this,region,true);   
                }   
            });   
        },   
        /**  
         * 显示某个region,center除外。  
         * @param {Object} jq  
         * @param {Object} params  
         */  
        show: function(jq, params) {   
            return jq.each(function() {   
                var opts = $.data(this, 'layout').options;   
                var panels = $.data(this, 'layout').panels;   
                var region = params;   
      
                function show(dom,region,doResize){   
                    var first = region.substring(0,1);   
                    var others = region.substring(1);   
                    var expand = 'expand' + first.toUpperCase() + others;   
                    if(panels[expand]) {   
                        if(!$(dom).layout('isVisible', expand)) {   
                            if(!$(dom).layout('isVisible', region)) {   
                                if(opts.regionState[region] == 1) {   
                                    panels[expand].panel('open');   
                                } else {   
                                    panels[region].panel('open');   
                                }   
                            }   
                        }   
                    } else {   
                        panels[region].panel('open');   
                    }   
                    if(doResize){   
                        $(dom).layout('resize');   
                    }   
                };   
                if(region.toLowerCase() == 'all'){   
                    show(this,'east',false);   
                    show(this,'north',false);   
                    show(this,'west',false);   
                    show(this,'south',true);   
                }else{   
                    show(this,region,true);   
                }   
            });   
        }   
    });  
</script>

$('#id').layout('hidden','north');   
$('#id').layout('show','north');   
分享到:
评论

相关推荐

    esayui layout

    在 TestProject 中,我们可以创建一个基于 EasyUI Layout 的示例项目,通过设置不同的区域和属性,实现自定义的页面布局。例如,可以创建一个包含侧边栏和主要内容区的布局,侧边栏可以折叠,中心区域展示主要内容...

    easyui 整体框架布局1.2.6

    6. **API 控制**:EasyUI 提供了一系列 JavaScript API,允许开发者在运行时动态添加、删除、隐藏或显示布局区域,以及调整它们的大小。 7. **事件处理**:EasyUI 还提供了布局相关的事件,如 `onResize`,可以在...

    jQuery EasyUI 中文API—Layout(Panel)

    Layout(布局)是 jQuery EasyUI 中的一个核心组件,它允许我们在网页上创建复杂的布局结构,方便地管理和组织页面内容。在本篇文章中,我们将深入探讨 jQuery EasyUI 中的 Layout(面板布局)及其相关API。 Layout...

    jQuery+EasyUI+API中文文档+示例

    EasyUI的组件如panel(面板)、tabs(标签页)和layout(布局)等,为构建复杂的网页界面提供了便利。每个组件都有其特定的配置项,如width、height、title等,以及事件处理如onLoad、onClick等。 总的来说,jQuery...

    Easyui使用Dialog行内按钮布局的实例

    在JSP页面中,我们使用了Easyui的Layout控件来实现Dialog控件的布局。我们首先定义了一个Layout控件,然后在其中添加了多个区域。每个区域都可以包含不同的控件,例如文本框、下拉框、按钮等。 在Dialog控件中,...

    easyui 1.4 API中文文档

    在EasyUI中,数据与UI组件间的绑定是通过JSON数据源实现的。例如,datagrid可以通过配置`url`属性从服务器获取数据,或者直接通过`data`属性设置本地JSON数据。 3. **表格(datagrid)** Datagrid是EasyUI的核心...

    使用easyUI搭建的后台管理系统框架

    虽然EasyUI自身并不提供这类功能,但开发者可以通过JavaScript或者后端框架(如Spring Security)来实现,根据用户角色动态显示或隐藏菜单项和操作按钮。 8. **响应式设计**: 考虑到不同的设备和屏幕尺寸,后台...

    jQuery EasyUI 1.3.5 离线简体中文API文档

    pagination:新增“layout”属性,用于自定义控件的样式布局; accordion:新增“unselect”方法、“onUnselect”事件; accordion:新增“select”和“multiple”属性; accordion:新增“getSelections”方法;...

    easyUI资料大全

    - **布局(Layout)**:用于创建复杂的页面布局,如 north、south、east、west 和 center 区域,可实现面板的动态调整和分割。 - **数据网格(Datagrid)**:显示表格数据,支持排序、分页、筛选等功能,可以与...

    EasyUI中文API

    它可以动态调整大小,支持浮动和隐藏,提供了灵活的区域配置。 7. **菜单(Menu)**:EasyUI 的菜单系统支持多级结构,可以轻松创建导航菜单。菜单项可以关联到页面、函数或者其他的EasyUI组件,实现功能的触发。 ...

    Easyui未混淆源码1.3

    2. **jQuery Layout**: Layout 是用于创建复杂页面布局的工具,它允许你将页面划分为多个区域(如北、南、东、西、中),并且这些区域可以独立调整大小。通过阅读源码,你可以了解到如何设置和管理布局的各个部分,...

    布局layout

    ### 布局layout知识点详解 #### 一、EasyUI简介 EasyUI是一个基于jQuery的用户界面插件集合。它提供了各种UI组件,使得开发者能够快速地构建出丰富的Web应用程序界面。EasyUI不仅简化了前端开发流程,还提高了开发...

    jquery easyui

    13. **easyui-layout (布局)**:`easyui-layout` 提供了一种灵活的页面布局方式,可以将页面划分为多个区域,每个区域可以放置任意内容,支持动态调整大小和隐藏显示。 14. **easyui-menubutton (菜单按钮)**:`...

    jQuery EasyUI v1.3.5官方API中文版

    8. **布局(Layout)**:提供区域划分功能,可以将页面分割成多个区域,支持动态调整大小和隐藏显示。 9. **下拉框(ComboBox)**:组合框组件,集输入框和下拉列表于一体,可以实现自动补全、选择项等功能。 10. ...

    jQuery EasyUI公司管理后台模板.zip

    1. **Layout(布局)**: Layout 是 EasyUI 提供的一种页面布局工具,它可以将页面划分为多个区域,如北、南、东、西、中等,方便地调整各个部分的内容和大小。在公司管理后台模板中,layout 可用于组织不同的功能...

    jQuery EasyUI.pdf

    在提供的文档中,“jQuery EasyUI.pdf”主要涵盖了 EasyUI 的 API 文档以及一些基础性的使用指导。该文档由 Richie Wang 编写,其 CSDN 账号为 richie696,最新版本为 v1.5.2 Build1,发布日期为 2017 年 6 月 27 日...

    jqueryeasyui中文培训

    **Accordion**是一种可以用来组织页面内容的组件,它通过可折叠的标签来实现内容的隐藏与显示,非常适合于创建FAQ(常见问题解答)等类型的网页。 - **实例**:使用Accordion组件创建一个简单的FAQ列表。 - **参数*...

    EasyUI的增删查改

    - **Layout**:布局组件,用于创建复杂的页面结构,如头部、主体、侧边栏等。 - **Grid**:表格组件,用于展示大量数据,支持分页、排序、过滤和行操作。 - **Form**:表单组件,用于数据输入和编辑,支持各种...

    0分免费下载jQuery easyui-1.2.5 含Demo 非常好的框架结构

    1.2.5版本的Layout组件支持动态调整大小和隐藏显示,适应各种屏幕尺寸。 5. **其他组件**:如Tree和Combobox提供了层次结构的数据展示和选择功能,Tooltip则为元素添加了浮动提示信息,丰富了用户交互体验。 这个...

Global site tag (gtag.js) - Google Analytics