我一直在尝试在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
}
注意:这些都在控制器中
非常感谢任何帮助!
答案 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());
});