`

EXT核心API详解(十七)_Ext.menu.Menu/BaseItem/Item/CheckItem/Separator/TextItem

阅读更多
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 ...

    Ext Js权威指南(.zip.001

    Ex4.0共2个压缩包特性,《ext js权威指南》 前 言 第1章 ext js 4开发入门 / 1 1.1 学习ext js必需的基础知识 / 1 1.2 json概述 / 3 1.2.1 认识json / 3 1.2.2 json的结构 / 3 1.2.3 json的例子 / 4 1.2.4 ...

    ExtJS入门教程(超级详细)

    61、Ext.menu.Separator类 ………… 52 62、Ext.menu.TextItem类 …………… 52 63、Ext.Toolbar类 …………………… 55 64、Ext.Toolbar.Item类 ……………… 56 65、Ext.Toolbar.Separator类 ……… 56 66、Ext....

    在b/s开发中经常用到的javaScript技术整理

    在b/s开发中经常用到的javaScript...&lt;input type=checkbox name=mm onclick=\"checkItem(\'All\')\"&gt;&lt;br/&gt;&lt;br/&gt; (\'mm2\')\"&gt;全选&lt;br/&gt; &lt;input type=checkbox name=mm2 onclick=\"checkItem(\'All2\')\"&gt;&lt;br/&gt; ...

    简单实用的全选反选按钮例子

    //判断全选按钮的状态 var checkItems=document.getElementsByName(“checkItem”); for(var i=0;i&lt;checkItems.length;i++){ checkItems[i].checked = flag; } }); //点击子项 $(“input:checkbox[name=’checkI

    checkitem.html

    自己存的页面

    DevExpress实现GridControl列头绘制Checkbox的方法

    本文实例展示了DevExpress实现GridControl列头绘制Checkbox的方法,具体实现方法.../// &lt;param name=checkItem&gt;RepositoryItemCheckEdit&lt;/param&gt; /// 需要绘制Checkbox的列名&lt;/param&gt; /// &lt;param name=e&gt;ColumnHeaderCu

    vue .js绑定checkbox并获取、改变选中状态的实例

    如下所示: ... &lt;div class=weui-cells v-for=item&gt; &lt;div class=weui-cell__ft&gt; &lt;input type=checkbox class=weui-check v-on:click=CheckItem(item) v-model=item.state name=checkbox /&gt;

    实现复选框全选/全不选切换

    input type=checkbox name=mm value=a onclick=”checkItem(this, ‘mmAll’)”&gt; &lt;input type=checkbox name=mm value=b onclick=”checkItem(this, ‘mmAll’)”&gt; &lt;input type=...

    jqueyr判断checkbox组的选中(示例代码)

    html: 代码如下:  ”right”&gt; &lt;/td&gt; ”left” colspan=”3″&gt; &lt;input type=”checkbox” class=”checkboxListItem” name=”checkItem” value=”3″ id=”slsa_approval” /&gt;批准 &lt;i

    Christmas-at-Grans:里程碑项目2-交互式前端开发

    格兰的圣诞节“格兰的圣诞节”是...代码认证javascript.js中显示的代码为: $(document).ready(function(){checkitem();}); 函数checkitem(){var $ this = $('#myCarousel'); if($('。carousel-inne

    Shell脚本避免重复执行的方法

    很多用cron定时执行的shell脚本可能会由于各种原因执行很久,会有必要在运行的时候先检查一下自身是否还在运行。本文提供的linux shell脚本用以检查以命令sh …来...checkitem=”$0″ let procCnt=`ps -A –format=’%

Global site tag (gtag.js) - Google Analytics