无法使用上下文菜单插件重命名 jsTree 中的节点
Unable to rename a node in jsTree using contextmenu plugin
我正在从 Web 服务(按需)绑定我的 jStree,它工作正常,现在我想使用上下文菜单插件来重命名节点,上下文菜单按预期出现,只有一个项目是重命名, 但点击它时节点无法编辑
我初始化jsTree的代码如下
我已将 "check_callback" 属性 设置为 true,并且还添加了一条允许重命名 TreeNode 的规则,
我已经检查了控制台(Chrome 开发人员选项)并验证了 "action" 方法被命中并且我也得到了当前节点数据,但是在 .edit 方法调用之后什么都没发生,
我相信 .edit 方法是使节点可编辑,编辑完成后我应该得到 rename_node 事件。但这不会发生
如有理解错误请指正
jQuery("#divTree").on("select_node.jstree", function (e, data) {
jQuery.AreaManagementInfo.CurrentlySelectedArea = data.node;
}).on('rename_node.jstree ', function (obj, val) {
alert('rename ');
}).jstree({
'plugins': ['contextmenu'],
'rules': {
"renameable": "all",
"multiple" : false
},
"contextmenu": {
"items": function ($node) {
return {
"Rename": {
"label": "Rename",
"action": function (data) {
var inst = $.jstree.reference(data.reference),
obj = inst.get_node(data.reference);
inst.edit(obj);
}
}
};
}
},
'core': {
'data': {
'type': 'POST',
'cache': true,
'contentType': 'application/json',
'url': Url,
'check_callback': true,
'themes': { "stripes": true },
'data': function (node) {
var parentId = 0;
if (node.id != "#") {
parentId = node.data.AreaId;
}
return JSON.stringify({ basicParam: basicParam, parentId: parentId });
},
'success': function (data) {
if (data.d != null) {
if (data.d != "") {
var length = data.d.length - 1;
}
}
return data.d;
},
'error': function (request, error) {
jQuery("#divTree").addClass("hide");
}
}
}
});
check_callback
不应该在 data
内,它应该是 core
的直接子级 - 更正它,一切都会正常工作。事实上 - 更仔细地阅读文档 - 你在 core.data
中放置了很多选项,它们不属于那里,应该直接在 core
.
中
我正在从 Web 服务(按需)绑定我的 jStree,它工作正常,现在我想使用上下文菜单插件来重命名节点,上下文菜单按预期出现,只有一个项目是重命名, 但点击它时节点无法编辑
我初始化jsTree的代码如下
我已将 "check_callback" 属性 设置为 true,并且还添加了一条允许重命名 TreeNode 的规则,
我已经检查了控制台(Chrome 开发人员选项)并验证了 "action" 方法被命中并且我也得到了当前节点数据,但是在 .edit 方法调用之后什么都没发生,
我相信 .edit 方法是使节点可编辑,编辑完成后我应该得到 rename_node 事件。但这不会发生
如有理解错误请指正
jQuery("#divTree").on("select_node.jstree", function (e, data) {
jQuery.AreaManagementInfo.CurrentlySelectedArea = data.node;
}).on('rename_node.jstree ', function (obj, val) {
alert('rename ');
}).jstree({
'plugins': ['contextmenu'],
'rules': {
"renameable": "all",
"multiple" : false
},
"contextmenu": {
"items": function ($node) {
return {
"Rename": {
"label": "Rename",
"action": function (data) {
var inst = $.jstree.reference(data.reference),
obj = inst.get_node(data.reference);
inst.edit(obj);
}
}
};
}
},
'core': {
'data': {
'type': 'POST',
'cache': true,
'contentType': 'application/json',
'url': Url,
'check_callback': true,
'themes': { "stripes": true },
'data': function (node) {
var parentId = 0;
if (node.id != "#") {
parentId = node.data.AreaId;
}
return JSON.stringify({ basicParam: basicParam, parentId: parentId });
},
'success': function (data) {
if (data.d != null) {
if (data.d != "") {
var length = data.d.length - 1;
}
}
return data.d;
},
'error': function (request, error) {
jQuery("#divTree").addClass("hide");
}
}
}
});
check_callback
不应该在 data
内,它应该是 core
的直接子级 - 更正它,一切都会正常工作。事实上 - 更仔细地阅读文档 - 你在 core.data
中放置了很多选项,它们不属于那里,应该直接在 core
.