gpt4 book ai didi

jstree - dnd,如何限制丢弃到某些节点类型?

转载 作者:行者123 更新时间:2023-12-03 11:05:02 27 4
gpt4 key购买 nike

我有 37 种不同的节点类型。
我正在尝试实现拖放。
这可行,但我需要准确限制可以拖动哪些类型以及可以删除它们的位置。
不幸的是,我在文档中找不到任何有用的信息(http://www.jstree.com/documentation)。

到目前为止,我已经尝试了三种方法:

首先:根据节点类型在drag_check回调中定义true或false的返回值:

$("#demo1").jstree({
"dnd" : {
"drag_check" : function () {

第二:绑定(bind)到 prepare_move.jstree 事件并根据节点类型返回 true 或 false 值:
.bind("prepare_move.jstree", function (e, data) {
if (data.rslt.o.attr("typ") === "tpop") {

第三:使用类型插件并在那里定义有效的 child :
$("#tree").jstree( {
"types": {
"type_attr": "typ",
"valid_children": ["ap_ordner_pop", "ap_ordner_apziel", "ap_ordner_erfkrit", "ap_ordner_apber", "ap_ordner_ber", "ap_ordner_beob", "iballg", "ap_ordner_ibb", "ap_ordner_ibartenassoz"],
"types": {
"ap_ordner_pop": {
"valid_children": "pop"
},
"pop": {
"valid_children": ["pop_ordner_tpop", "pop_ordner_popber", "pop_ordner_massnber"],
"new_node": "neue Population"
},
"pop_ordner_tpop": {
"valid_children": "tpop"
}

但我仍然可以在几乎任何地方删除大多数节点。
这必须怎么做?
或者你能给我举一个很好的例子吗?

非常感谢您的帮助。

最佳答案

对于那些使用 jstree v3 寻找答案的人。 crrm 插件已被删除,您将需要使用 ' check_callback '。

在我的情况下,我想做的就是阻止子项目被拖到其他子项目中。可能有更好的方法来做到这一点,但经过几个小时的进展,这对我有用。

我相信您还需要将“check_while_dragging”dnd 选项设置为 true,以便在拖动时触发“check_callback”。

这是我的 jsTree 初始化:

$("#jsTree").jstree({
'core': {
'data': window.treeData,
'themes': {
'icons': false
},
'check_callback': function(operation, node, node_parent, node_position, more) {
// operation can be 'create_node', 'rename_node', 'delete_node', 'move_node' or 'copy_node'
// in case of 'rename_node' node_position is filled with the new node name

if (operation === "move_node") {
return node_parent.original.type === "Parent"; //only allow dropping inside nodes of type 'Parent'
}
return true; //allow all other operations
}
},
"state": { "key": "<%=Request.QueryString["type"]%>_infotree" },
"dnd": {
check_while_dragging: true
},
"plugins": ["state", "dnd", "types"]
})

关于jstree - dnd,如何限制丢弃到某些节点类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11000095/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com