jsTree取消创建节点
jsTree cancel Create node
我使用的上下文菜单是 jsTree,这是我的代码:
"contextmenu" : {
"items": function ($node) {
return {
"create": {
"separator_before": false,
"separator_after": false,
"label": "Créer",
"action": function (data) {
var inst = $.jstree.reference(data.reference),
obj = inst.get_node(data.reference);
inst.create_node(obj, {}, "last", function (new_node) {
new_node.type = "child";
setTimeout(function () {
inst.edit(new_node);
}, 0);
});
}
},
"Rename": {
"separator_before": false,
"separator_after": false,
"label": "Renommer",
"action": function (data) {
var inst = $.jstree.reference(data.reference),
obj = inst.get_node(data.reference);
inst.edit(obj);
}
},
"Remove": {
"separator_before": false,
"separator_after": false,
"label": "Supprimer",
"action": function (data) {
var inst = $.jstree.reference(data.reference),
obj = inst.get_node(data.reference);
inst.delete_node(obj);
}
}
};
}
},
如果我正在重命名一个节点并且我决定取消它,我只需按下退出按钮和节点 returns 到它以前的名称。
如果我想创建一个节点,它会先创建节点并将其置于编辑模式。现在,如果我按 escape,将退出编辑模式,但节点仍然存在。我想要完成的是,如果我处于创建模式,然后按退出键,它应该删除新创建的节点。
关于如何执行此操作的任何想法?
节点编辑函数本身接受回调作为第二个参数。调用回调函数时,会收到一个布尔标志,指示用户是否取消了编辑。
inst.edit(new_node,"New node",function(node,bStatus,bCancelled){
if(bCancelled){
this.delete_node(node);
}
});
同时返回当前节点和实例,可用于删除节点。
我使用的上下文菜单是 jsTree,这是我的代码:
"contextmenu" : {
"items": function ($node) {
return {
"create": {
"separator_before": false,
"separator_after": false,
"label": "Créer",
"action": function (data) {
var inst = $.jstree.reference(data.reference),
obj = inst.get_node(data.reference);
inst.create_node(obj, {}, "last", function (new_node) {
new_node.type = "child";
setTimeout(function () {
inst.edit(new_node);
}, 0);
});
}
},
"Rename": {
"separator_before": false,
"separator_after": false,
"label": "Renommer",
"action": function (data) {
var inst = $.jstree.reference(data.reference),
obj = inst.get_node(data.reference);
inst.edit(obj);
}
},
"Remove": {
"separator_before": false,
"separator_after": false,
"label": "Supprimer",
"action": function (data) {
var inst = $.jstree.reference(data.reference),
obj = inst.get_node(data.reference);
inst.delete_node(obj);
}
}
};
}
},
如果我正在重命名一个节点并且我决定取消它,我只需按下退出按钮和节点 returns 到它以前的名称。
如果我想创建一个节点,它会先创建节点并将其置于编辑模式。现在,如果我按 escape,将退出编辑模式,但节点仍然存在。我想要完成的是,如果我处于创建模式,然后按退出键,它应该删除新创建的节点。
关于如何执行此操作的任何想法?
节点编辑函数本身接受回调作为第二个参数。调用回调函数时,会收到一个布尔标志,指示用户是否取消了编辑。
inst.edit(new_node,"New node",function(node,bStatus,bCancelled){
if(bCancelled){
this.delete_node(node);
}
});
同时返回当前节点和实例,可用于删除节点。