繁体   English   中英

如何拒绝删除/重命名/移动jsTree中的根(或其他)节点?

[英]how to deny delete/rename/move root(or other) node(s) in jsTree?

例如:

[{
"data": "reference",
"attr": {
    "id": "0"
},
"state": "open",
"children": [
    [{
        "data": "one",
        "attr": {
            "id": "1"
        },
        "state": "closed"
    }, {
        "data": "two",
        "attr": {
            "id": "2"
        }
    }]
]
}, {
"data": "recycle bin",
"attr": {
    "id": "bin"
},
"state": "closed",
"children": []
}]

我需要使用“dnd”,“crrm”和“上下文菜单”插件拒绝删除/移动/重命名“reference”和“recycle bin”节点

为了避免使用crrm插件进行移动,您可以:

"crrm": {
   "move": {
      "check_move": function(m) { return (m.o[0].id !== "0" && m.o[0].id !== "bin"); }
   }
}

总之,您需要返回TRUE以允许移动,否则返回FALSE。 因此,检查移动的节点ID不是引用的ID,还是回收站的ID。

请查看jsTree文档以完成其他任务,因为您需要的一切都在那里。 不要偷懒:-)

您可以捕获节点删除事件并检查节点的元数据:

.bind('delete_node.jstree', function (e, data) {
    // Check medatada, assuming that root's parent_id is NULL:
    if (data.rslt.obj.attr('parent_id') == null) {
       alert('Root folder is here to stay.');
       e.stopImmediatePropagation();
       return false;
    }
})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM