extjs tree panel context menu not working

前端 未结 2 2261
说谎
说谎 2021-02-20 05:06
var menu1 = new Ext.menu.Menu({
    items: [{
        text: \'Open in new tab\'

    }]
});
var treePanel = Ext.create(\'Ext.tree.Panel\', {
    id: \'tree-panel\',
             


        
相关标签:
2条回答
  • 2021-02-20 05:12

    Tree doesn't have contextmenu event in ExtJS4.

    You should use itemcontextmenu instead of contextmenu:

    treePanel.on('itemcontextmenu', function(view, record, item, index, event) {
        alert(record)
        //treePanelCurrentNode = record;
        menu1.showAt(event.getXY());
        event.stopEvent();
    }, this);
    
    0 讨论(0)
  • 2021-02-20 05:24

    When the data view is rendered it disabling the default right click web browser menu, this is called in listeners “render” event and “itemcontexmenu” event is for detecting right click mouse event, capture the mouse cursor position and displaying the menu.

      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]);
    
    
            }
    }
    
    0 讨论(0)
提交回复
热议问题