Не работает контекстное меню панели управления extjs
var menu1 = new Ext.menu.Menu({
items: [
{
text: 'Open in new tab'
}
]
});
var treePanel = Ext.create('Ext.tree.Panel', {
id: 'tree-panel',
region:'center',
useArrows: true,
singleExpand: true,
split: false,
height: 360,
minSize: 150,
rootVisible: false,
autoScroll: true,
store: store,
border:false,
columns:[
{
xtype: 'treecolumn',
dataIndex: 'text',
flex: 2,
sortable: true,
displayField : true
}
]
});
treePanel.on('contextmenu', function(event,node){
alert(node)
//treePanelCurrentNode = node;
x = event.browserEvent.clientX;
y = event.browserEvent.clientY;
menu1.showAt([x, y]);
},this);
Работа с 4.1 ext js и попытка добавить контекстное меню к этой панели дерева, но меню не работает. В магазине панели дерева появится
но мой код
treePanel.on('contextmenu', function(event,node){};
не работает
не событие
treePanel.on('click', function(event,node){};
Любая идея связана с контекстным меню ext js на панели дерева?
Ответы
Ответ 1
У дерева нет события contextmenu
в ExtJS4. Вы должны использовать itemcontextmenu
:
treePanel.on('itemcontextmenu', function(view, record, item, index, event){
alert(record)
//treePanelCurrentNode = record;
menu1.showAt(event.getXY());
event.stopEvent();
},this);
Ответ 2
Когда отображается представление данных, он отключает меню браузера по умолчанию правой кнопкой мыши, это вызывается в событии "визуализация" слушателей, а событие "itemcontexmenu" предназначено для обнаружения события щелчка мыши правой кнопкой мыши, захвата позиции курсора мыши и отображения меню.
listeners: {
render: function() {
Ext.getBody().on("contextmenu", Ext.emptyFn, null, {preventDefault: true});
},
itemcontextmenu : function( grid, record, item, index, event){
x = event.browserEvent.clientX;
y = event.browserEvent.clientY;
menu1.showAt([x, y]);
}
}