1

jstreeのコンテキストメニューの項目をクリックしてキャプチャすることは可能ですか?

jsonのファイルから次のようなコンテキストメニューをロードします

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

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

関数を評価して実行するために、コンテキストメニューの項目をクリックしてキャプチャしたいと思います。これを作ることは可能ですか?

4

1 に答える 1

0

私はこのように解決しました:

$("#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')}
    }
}
于 2012-04-20T21:20:19.810 に答える