extjs树面板上下文菜单无法正常工作

Arp*_*nav 10 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);
Run Code Online (Sandbox Code Playgroud)

使用4.1 ext js并尝试将上下文菜单添加到此树面板但菜单不起作用.在树面板商店即将到来,但我的代码

treePanel.on('contextmenu', function(event,node){};
Run Code Online (Sandbox Code Playgroud)

不工作不是事件

treePanel.on('click', function(event,node){};
Run Code Online (Sandbox Code Playgroud)

任何与树面板上的ext js上下文菜单相关的想法?

Mol*_*Man 20

contextmenu在ExtJS4 中没有事件.

您应该使用itemcontextmenu而不是contextmenu:

treePanel.on('itemcontextmenu', function(view, record, item, index, event) {
    alert(record)
    //treePanelCurrentNode = record;
    menu1.showAt(event.getXY());
    event.stopEvent();
}, this);
Run Code Online (Sandbox Code Playgroud)

  • @astrocybernaute,更新了我的回答(添加了`event.stopEvent`,阻止浏览器默认菜单显示).关于[object Object]:警报必须显示什么?警报以这种方式显示对象变量.使用console.log查看记录内容. (4认同)