ExtJs - 无法为DOM上下文菜单使用fireEvent

时间:2014-03-18 17:00:37

标签: javascript events extjs contextmenu

我一直在尝试在ExtJs的tabpanel标题上创建一个上下文菜单,但遇到了一些问题。

最终,我希望它出现在左右两次点击;目前它在右键单击时显示正常,但我也无法在leftclick上发生右键单击事件。

我按如下方式设置了一个监听器:

tabPanel.items.items[len].getEl().on('contextmenu', function(event, item) { 
//the items.items is intentional
    event.stopEvent();
    Ext.ComponentQuery.query('#contextMenu')[0].showAt(event.getXY());
}

并尝试通过调用:

在左键单击时创建上下文菜单
beforeactivate: function() {
    tabPanel = Ext.ComponentQuery.query('#tabPanelChanged tabbar')[0];
    len = tabPanel.items.items.length -1;
    button = tabPanel.items.items[len].getEl();

    button.fireEvent('contextmenu', button);
    //button.dom.oncontextmenu is null, but so is onclick
    return false; //Returning false stops the tab being activated
}

注意:这些都在控制器中

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

tabPanel.items.items[len].getEl().on('contextmenu', function(event, item) { 
//the items.items is intentional
    event.stopEvent();
    Ext.ComponentQuery.query('#contextMenu')[0].showAt(event.getXY());
});

(...)

tabPanel.items.items[len].getEl().on('click', function(event, item) { 
//the items.items is intentional
    event.stopEvent();    
    Ext.ComponentQuery.query('#contextMenu')[0].showAt(event.getXY());
});