ExtJs泡泡菜单事件

时间:2014-02-18 07:00:03

标签: extjs

我的ExtJs菜单定义如下。我在菜单项'hookMethod'和'handlerMethod'中添加了两个自定义方法。 'hookMethod'是根据某些条件添加的。我将单个菜单项的click事件冒泡到根菜单。 然后检查是否定义了hook,然后调用'hookMethod',否则直接调用'handlerMethod'。我面临的问题是点击监听器被调用两次,一次用于menuitem,一次用于菜单。另外,什么是e论点。我以为它只会被调用一次菜单,我会有一些方法来检索被点击的实际菜单项。

{
    xtype: "menu",
    listeners: {
        click: function(item, e, eopts)
        {
            if(item.hookMethod) { 
                item.hookMethod(item.handlerMethod);
            }
                else {
               item.handlerMethod(this);
            }
         }
    },
    items: [{
        xtype: "menuitem",
        text: "Process Record",
        bubbleEvents: ['click'],
        hookMethod: function(actualMethod)
        {
            //do some pre-processing here and then call the actual handler
            actualMethod(args)
        },
        handlerMethod: function(args)
        {
            //Do actual processing
        },
    }]
}

1 个答案:

答案 0 :(得分:0)

Ext.menu.Menu click( menu, item, e, eOpts )事件有四个参数。

第一个参数是menu对象本身。

第二个item参数是单击的菜单项的对象。您可以使用此参数来确定单击菜单中的哪个项目。