是否可以捕获对jstree上下文菜单项的单击

Is it possible to capture a click on item of jstree's contextmenu?

本文关键字:上下文 菜单项 单击 jstree 是否      更新时间:2023-09-26

是否可以捕获jstree上下文菜单项的点击?

我从json的文件加载这样的上下文菜单

{
    "item1" : {
        "label" : "item 1",
        "action" : "function(){alert('item 1')}"
     },
    "item2" : {
        "label" : "item 2",
        "action" : "function(){alert('item 2')}"
    }
}

我想捕获上下文菜单项的单击以评估函数并执行它。有可能做这个吗?

我是这样解决的:

$("#tree").jstree({ 
    "plugins" : [ "json_data"],
    "json_data" : {
        "ajax" : {
        "type": 'GET',
         "url": "json_data.json";
         "success": function (new_data) {   
                  return new_data;
          }
         }
       },
       "contextmenu" : {
        "items" : customMenu
        }
});

function customMenu(node) {
    var items = {};
    $.ajax({
       url: "contextmenu.json",
       dataType: 'script',
       async : false,
       success : function( script ){    
           eval(script)
           items = menuItems;                   
       } 
    });
    return items;
} 

// file: "contextmenu.json"
var menuItems = {
    "item1" : {
        "label" : "item 1",
        "action" : function(){alert('item 1')}
     },
    "item2" : {
        "label" : "item 2",
        "action" : function(){alert('item 2')}
    }
}