花式树:在右键单击上下文菜单中获取节点

Fancytree: get node at right click context menu

本文关键字:菜单 上下文 获取 节点 单击 右键      更新时间:2023-09-26

我在花式树上有一个右键单击上下文菜单,我想从"禁用"属性的函数调用中获取节点对象。因此,根据节点对象中的一些数据,我想有条件地禁用菜单项。但是数据对象只有一个随机的jquery选择器,没有节点或节点数据对象。

        contextMenu: {
              menu: {
                'Cut': { 'name': 'Cut', 'icon': 'cut' },
                'Paste': { 'name': 'Paste', 'icon': 'paste',
                    'disabled' : function(action,data) 
                    { 
                        logMessage("Node: "+ data.node.title + " " + data.node.tooltip);
                        if (data.node.data.isAllowed == true)
                            return false;
                        else
                            return true; 
                    }   
                },
                'sep1': '---------',
                'RefreshTree': { 'name': 'Refresh Tree', 'icon': 'refresh' },
                'sep2': '---------',
                'RefreshNode': { 'name': 'Refresh Node', 'icon': 'refresh' }
              },
              actions: function(node, action, options) {
                  logMessage("Action ["+action+"] "+JSON.stringify(node.data));
              .....

好的。我得到了答案。

              menu: {
                'Cut': { 'name': 'Cut', 'icon': 'cut' },
                'Paste': { 'name': 'Paste', 'icon': 'paste',
                    'disabled' : function(action,data) 
                    { 
                        var node = $.ui.fancytree.getNode(data.$trigger);
                        logMessage("Node: "+ node.title + " " + node.tooltip);
                        if (node.data.isAllowed == true)
                            return false;
                        else
                            return true; 
                    }   
                },