1
我一直在努力解决这个问题,现在天的包含文件夹...jstree:无法获取叶节点
我需要的文件夹相对的(节点=“文件夹”身份证巫包含我的服务器端根据类型从数据库中删除节点。对于文件夹,对叶子来说不是问题,我需要将容器文件夹的id设置为能够删除它的叶子
我已经尝试过各种不同的场景,它们都是灾难性的,返回undef或-1。
即使是最流行的方式:
(data.inst._get_parent(data.rslt.obj)==-1?'root_node':data.inst._get_parent(data.rslt.obj).attr('id'));
总是返回-1为所有的叶子节点我想在任何地方树删除。
这里的一些代码:
.bind("remove.jstree", function (e, data) {
data.rslt.obj.each(function() {
var node = data.rslt.obj;
console.log('rel:'+node.parent("li[rel='folder']").attr("id")); // always undef
var node2=$("#demo").jstree("_get_parent", data.rslt.obj.attr("id"));
console.log("another try:"+node2.attr("id")); always undef
var node_parent=(data.inst._get_parent(data.rslt.obj)==-1?'root_node':data.inst._get_parent(data.rslt.obj).attr('id'));
console.log('node_parent for ' + data.rslt.obj.attr("id") + ':'+node_parent);// always -1
var parents = [];
$(data.rslt.obj).parents('li').each(function() {
parents.push({ id: $(this).attr("id"), description: $(this).children("a").text() });
});
console.log('nb of parents:'+parent.length); // always 0;
$.ajax({
async : false,
type: 'POST',
url: "ajaxTree.php",
data : {
"operation" : "remove_node",
"id" : this.id.replace("node_",""),
"type" : data.rslt.obj.attr("rel"),
"parent": node_parent
},
success : function (r) {
if(!r.status) {
//data.inst.refresh();
$.jstree.rollback(data.rlbk);
}
}
});
});
})
感谢留下一张纸条,你认为什么可以工作,我来试试,promissed:d
为什么不添加“容器”ID到你的叶子?只是一个快速的想法。 – Radek
这可能是一个选项。我可以修改id以包含父文件夹的id,例如'node_123_parent_321',但这意味着所有ajax调用的重复使用,其中id使用像create_node,delete_node等等。使用og regexp来获取这两个值是必需的。 – sleblanc
您是否从https://groups.google.com/forum/?fromgroups=#!topic/jstree/尝试了https://groups.google.com/forum/?fromgroups =#!topic/jstree/wHIT4gIdcIY' wHIT4gIdcIY – Radek