我需要从json的文件加载jsTree的contextmenu。 contextmenu保存在此文件(“test.json”)中:
{
"item1" : {
"label" : "voce1"
},
"item2" : {
"label" : "voce2"
}
}
和加载上下文菜单的代码是:
$(function () {
$("#tree").jstree({
"plugins" : [ "themes", "json_data", "ui", "contextmenu" ],
// other code ....
"contextmenu" : {
"items" : customMenu
}
})
});
function customMenu(node) {
$.getJSON( "test.json", function(json) {
return json;
});
}
通过这种方式,我看不到上下文菜单。你能救我吗?
答案 0 :(得分:2)
我不知道jstree插件是如何工作的,但也许你应该尝试不同的方法,首先加载发出Ajax请求的JSON数据,当它完成时,初始化jstree:
$(function () {
$.getJSON( "test.json", function(json) {
$("#tree").jstree({
"plugins" : [ "themes", "json_data", "ui", "contextmenu" ],
"contextmenu" : {
"items" : json
}
});
});
});
这是因为Ajax调用是异步的,因此customMenu()
函数没有向"items"
"contextmenu"
选项返回任何内容。