`

[转载]EXT核心API详解Ext.menu.Menu(十七)

    博客分类:
  • EXT
阅读更多
Ext.menu.Menu
菜单对象

config{
    allowOtherMenus : Boolean    //允许同时显示其它的菜单?
    defaultAlign : String        //默认对齐方式:tl-bl?
    defaults : Object        //默认的菜单项配置,将会应用到所有的items
    items : Mixed    //菜单项数组
    minWidth : Number        //最小宽度.默认120
    shadow : Boolean/String    //
    subMenuAlign : String    //子菜单对齐方式 tl-tr?
}

Menu( Object config )
构造

add( Mixed args ) : Ext.menu.Item
添加菜单项
可能的参数为  
* 从Ext.menu.Item继承来的菜单项对象
* 可以被转换为menu item的HTMLElement对象
* 一个Ext.menu.Item的构造config对象
*一个字符串,-或separator将为分隔项,其它的做为TextItem对象的构造参数


addElement( Mixed el ) : Ext.menu.Item
添加Element对象

addItem( Ext.menu.Item item ) : Ext.menu.Item
添加Item 对象

addMenuItem( Object config ) : Ext.menu.Item
添加Item对象,这回传入的参数是item构造的config参数

addSeparator() : Ext.menu.Item
添加间隔项

addText( String text ) : Ext.menu.Item
添加文本项

getEl() : Ext.Element
得到当前element对象

hide( [Boolean deep] ) : void
隐藏

insert( Number index, Ext.menu.Item item ) : Ext.menu.Item
在index位置插入item
isVisible() : void
可见?

remove( Ext.menu.Item item ) : void
移除item

removeAll() : void
移除所有

show( Mixed element, [String position], [Ext.menu.Menu parentMenu] ) : void
相对于element显示当前菜单

showAt( Array xyPosition, [Ext.menu.Menu parentMenu] ) : void
在绝对位置xyposition显示当前菜单


Ext.menu.BaseItem
所有菜单项的基类,继承自Component

config {
    activeClass : String    //活跃时的样式类,默认x-menu-item-active
    canActivate : Boolean    //能设置活跃?默认为false
    handler : Function    //事件处理句柄
    hideDelay : Number    //隔多长时间自动隐藏,默认100(毫秒)
    hideOnClick : Boolean    //点击后自动隐藏,默认为真
}

BaseItem( Object config )
构造

setHandler( Function handler, Object scope ) : void
设置处理句柄handler

事件:
activate : ( Ext.menu.BaseItem this )
click : ( Ext.menu.BaseItem this, Ext.EventObject e )
deactivate : ( Ext.menu.BaseItem this )


Ext.menu.Adapter
这个类是为了支持将非BaseItem子类的容器转换为支持baseitem的适配器,除了构造,与BaseItem无异
Adapter( Ext.Component component, Object config ),可以自己再继承它做点实用的事, 他的两个子类更好用

Ext.menu.ColorMenu
提供颜色选择
Ext.menu.DateItem
提供日期选择

Ext.menu.Item
是BaseItem的另一个实用子类,提供一般的菜单项,支持菜单项之间的相互关系
config{
    canActivate : Boolean
    href : String
    hrefTarget : String
    icon : String    //默认Ext.BLANK_IMAGE_URL,建议更改,extjs.com的确太慢了
    iconCls : String
    itemCls : String
    showDelay : Number
    text : String
}
方法
Item( Object config )
构造

setIconClass( String cls ) : void
setText( String text ) : void

Ext.menu.CheckItem
继承自Item,前面带有选择框的菜单项
config{
    checked : Boolean
    group : String
    groupClass : String    //默认x-menu-group-item
    itemCls : String
}

方法
CheckItem( Object config )
构造

checkHandler( Ext.menu.CheckItem this, Boolean checked ) : void
选择处理方法

setChecked( Boolean checked, [Boolean suppressEvent] ) : void
设置选择状态

事件
beforecheckchange : ( Ext.menu.CheckItem this, Boolean checked )
checkchange : ( Ext.menu.CheckItem this, Boolean checked )

Ext.menu.Separator
继承自item,间隔项

Ext.menu.TextItem
继承自item,文本项
config{
    hideOnClick : Boolean
    itemCls : String
    text : String
}

下面的示例从ext官方而来,继续简单的修改,只有menu相关部分.同样也都很简单
Ext.QuickTips.init();

    //日期选择项点击事件
    var dateMenu = new Ext.menu.DateMenu({
        handler : function(dp, date){
           Ext.MessageBox.alert('Date Selected', String.format('You chose {0}.', date.format('M j, Y')));
        }
    });

 
    var colorMenu = new Ext.menu.ColorMenu({
        handler : function(cm,color){
           Ext.MessageBox.alert('Color Selected', String.format('You chose #{0}.', cm.palette.value));
        }
    });

    var menu = new Ext.menu.Menu({
        id: 'mainMenu',
        items: [
            {
                text: 'I like Ext',
                checked: true,    
                checkHandler: onItemCheck
            },
            {
                text: 'Ext for jQuery',
                checked: true,
                checkHandler: onItemCheck
            },
            {
                text: 'I donated!',
                checked:false,
                checkHandler: onItemCheck
            }, '-', {
                text: 'Radio Options',
                menu: {     
                    items: [
                        '<b class="menu-title">Choose a Theme</b>',
                        {
                            text: 'Aero Glass',
                            checked: true,
                            group: 'theme',
                            checkHandler: onItemCheck
                        }, {
                            text: 'Vista Black',
                            checked: false,
                            group: 'theme',
                            checkHandler: onItemCheck
                        }, {
                            text: 'Gray Theme',
                            checked: false,
                            group: 'theme',
                            checkHandler: onItemCheck
                        }, {
                            text: 'Default Theme',
                            checked: false,
                            group: 'theme',
                            checkHandler: onItemCheck
                        }
                    ]
                }
            },{
                text: 'Choose a Date',
                iconCls: 'calendar',
                menu: dateMenu
            },{
                text: 'Choose a Color',
                menu: colorMenu
            }
        ]
    });

    var tb = new Ext.Toolbar();
    tb.render(Ext.getBody());

    tb.add({
            text:'Button w/ Menu',
            iconCls: 'bmenu', // <-- icon
            menu: menu // assign menu by instance
        }
    );

    menu.addSeparator();
    // Menus have a rich api for
    // adding and removing elements dynamically
    var item = menu.add({
        text: 'Dynamically added Item'
    });
    // items support full Observable API
    item.on('click', onItemClick);

    // items can easily be looked up
    menu.add({
        text: 'Disabled Item',
        id: 'disableMe' // <-- Items can also have an id for easy lookup
        // disabled: true   <-- allowed but for sake of example we use long way below
    });
    // access items by id or index
    menu.items.get('disableMe').disable();
 
    //这个增加子菜单的方法照猫画虎学的,至于add的到底是个什么?getXType得不到,item有私有的属性menu?
    var ele=menu.add({
        text:'submit',
        menu:{
            items:[
                {text:'submenu1',handler:onItemClick},
                {text:'submenu2',handler:onItemClick}
            ]
        }
    });
 


    // functions to display feedback
    function onButtonClick(btn){
        Ext.MessageBox.alert('Button Click',String.format('You clicked the "{0}" button.', btn.text));
    }

    function onItemClick(item){
        Ext.MessageBox.alert('Menu Click', String.format('You clicked the "{0}" menu item.', item.text));
    }

    function onItemCheck(item, checked){
        Ext.MessageBox.alert('Item Check', String.format('You {1} the "{0}" menu item.', item.text, checked ? 'checked' : 'unchecked'));
    }

    function onItemToggle(item, pressed){
        Ext.MessageBox.alert('Button Toggled', String.format('Button "{0}" was toggled to {1}.', item.text, pressed));
    }
分享到:
评论

相关推荐

    EXT核心API详解

    EXT核心API详解 1、Ext类 ………………………………… 2 2、Array类 …………………………… 4 3、Number类 …………………………… 4 4、String类 …………………………… 4 5、Date类 ……………………………… 5 ...

    extjs核心api详解.doc

    9. **Ext.menu.Menu**和**Ext.Toolbar**:这两部分分别详细介绍了菜单和工具栏的创建和使用,它们是构建应用界面的重要组成部分,提供快捷操作和自定义功能。 EXTJS的核心API详解文档是开发者深入理解并熟练运用...

    Ext2 核心 API 中文详解

    ### Ext2 核心 API 中文详解 #### 序、关于Ext2核心API Ext2是一套基于Ajax的用户界面库,它提供了丰富的组件和工具,帮助开发者构建高性能的Web应用。本文档将深入探讨Ext2核心API的相关知识点,特别关注于如何...

    extjs核心api详解

    八、Ext.menu.Menu与Ext.Toolbar 这两部分分别介绍了extjs的菜单组件和工具栏组件。它们提供了丰富的api来创建多级菜单和工具栏,支持图标、文本、分隔符、快捷键等特性,极大地增强了用户界面的功能性和可用性。 ...

    ext2.0 详解和API

    7. **菜单和工具栏**:如Ext.menu.Menu和Ext.toolbar.Toolbar,提供下拉菜单和顶部工具栏功能。 8. **工具提示**:如Ext.tip.ToolTip,用于显示浮动的提示信息。 **EXT2.0的Demos** "Demos_Ext2.0.rar"可能包含了...

    extjs帮助文档pdf版

    ### ExtJS核心API详解 #### 1. Ext 类 (P.2) - **概述**:`Ext` 是 ExtJS 的核心命名空间,包含了全局的方法和属性。 - **用途**:提供了一个统一的入口来访问 ExtJS 库的功能,如创建组件、管理事件等。 - **常用...

    Ext中文帮助文档(Ext常见界面源码,及类库方法详解)

    这个“Ext中文帮助文档”涵盖了ExtJS 2.1版本的核心类库和常见界面元素,为开发者提供了详尽的源码解析和方法解释。 一、ExtJS 2.1核心组件 在ExtJS 2.1中,主要的组件包括: 1. 表格(Grid):用于展示数据,支持...

    精通JS脚本之ExtJS框架.part1.rar

    5.4.4 Ext.menu.Menu简介 5.4.5 最简单的菜单栏 5.4.6 创建三级或多级菜单 5.4.7 具有选择框的菜单 第6章 页面元素与模板 6.1 构成用户界面的元素 6.2 获取页面元素 6.3 元素常见的使用方法 6.3.1 常见的...

    GRUB引导详解引导文件.txt

    - GRUB 的主要配置文件为 `/boot/grub/grub.conf` 或 `/boot/grub/menu.lst`。 - 配置文件中包含了一系列菜单项,每个菜单项对应一个操作系统或启动选项。 - 用户可以通过编辑这个文件来添加或删除启动选项,调整...

    EXT2.0学习资料.rar

    ExtJS学习.pdf则可能是另一个EXT JS的学习资料,可能包含EXT2.0的技术详解、实例演示、最佳实践等内容。用户可以从中了解到如何使用EXT2.0的API来创建自定义组件,以及如何与其他前端技术如jQuery、Ajax等进行集成。...

    精通JS脚本之ExtJS框架.part2.rar

    5.4.4 Ext.menu.Menu简介 5.4.5 最简单的菜单栏 5.4.6 创建三级或多级菜单 5.4.7 具有选择框的菜单 第6章 页面元素与模板 6.1 构成用户界面的元素 6.2 获取页面元素 6.3 元素常见的使用方法 6.3.1 常见的...

    快意编程:Ext JS Web开发技术详解

    2. **组件系统**:Ext JS的核心在于其组件系统,涵盖各种控件,如表格(Grid)、面板(Panel)、表单(Form)、菜单(Menu)、工具栏(Toolbar)等。学习如何创建和配置这些组件,以及如何通过布局(Layouts)来调整...

    ext教程

    ### ext教程知识点详解 #### 一、概述 **ext** 是一个非常强大的 JavaScript 类库,最初它是基于 Yahoo UI 库开发的,但现在已经完全独立。它提供了丰富的组件和功能,适用于构建复杂的 Web 应用程序。 #### 二、...

    ext学习文档

    ### EXT学习文档知识点详解 #### 1. EXT简介 EXT是一个功能强大的JavaScript库,用于构建交互式的Web应用程序。它提供了一系列工具和API,使得开发者能够更容易地创建动态且丰富的用户界面。EXT支持多种浏览器,并...

    EXT开发文档

    ### EXT开发文档知识点详解 #### 一、EXT JS 概述 **EXT JS**,简称 **EXT**,是一个强大的 **JavaScript** 框架,它主要用于构建高度交互式的客户端应用程序。该框架支持多种Web标准,并且能够独立于服务器端技术...

    extjs学习资源

    - **菜单和工具栏**: `Ext.menu.Menu`和`Ext.Toolbar`提供了创建上下文菜单和工具栏的功能。 #### 四、总结 - 以上内容详细介绍了Extjs的核心API及其应用场景,对于初学者来说是一份非常宝贵的学习资料。通过对...

    EXT-js-中文手册

    - **获取方法**:介绍了如何使用EXT提供的API来获取页面上的多个DOM节点。 - **应用场景**:适用于需要批量操作DOM元素的情况,如设置样式、绑定事件等。 #### 6. 响应事件 - **事件绑定**:详细讲解了如何使用EXT...

Global site tag (gtag.js) - Google Analytics