gpt4 book ai didi

javascript - FancyTree:拖动到根级别时节点对象不正确

转载 作者:行者123 更新时间:2023-11-30 12:35:36 25 4
gpt4 key购买 nike

我正在尝试在拖放事件后为节点定义新的父 ID。

假设您将节点拖到除根以外的任何级别,此功能可以正常工作

dragDrop: function(node, data) {
/** This function MUST be defined to enable dropping of items on
* the tree.
*/
data.otherNode.moveTo(node, data.hitMode);
// Set Parent ID with id of parent
data.otherNode.data.parent_id = node.data.id;
}

然而,当将一个节点拖到根节点时,它会从其他地方获取一个 id(我还没有弄清楚模式)。

我一直在监视 fancytree node.key(它显示父节点的键)并且它总是输出 key_2 而从不输出 root_1 这是值root 当我使用 tree.toDict(true); 输出树时功能。

找出节点是否已被拖到根的正确方法是什么?

最佳答案

如 mar10 所述,您永远不会将不可见的系统根节点作为拖放事件的目标节点。因此你永远达不到 0 级。

节点总是在另一个节点“上方”、“之前”或“之后”被丢弃,由 node.hitMode 表示。

如果您只是想防止将节点放入第一层(我认为这就是您所说的根层级)并且仅“放入”文件夹,请限制 hitMode 如下:

dragEnter: function(node, data) {
if(node.folder == false) {
return false;
}
return 'over';
}

如果你想检查 dragDrop 事件中的第一个(根)级别,你可以这样做:

dragDrop: function(node, data) {
if (node.getLevel() == 1 && (data.hitMode == 'after' || data.hitMode == 'before')) {
console.log('dropped into first level');
}
}

如果您的问题针对其他问题,请编辑您的问题或发表评论。

关于javascript - FancyTree:拖动到根级别时节点对象不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26172020/

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