JsTree:防止两棵树之间的拖放

时间:2016-09-11 08:20:28

标签: javascript jquery jstree jstree-dnd

我正在使用jstree dnd插件。 要设置允许删除的节点,我使用“types”插件和valid_children属性。这甚至可以在两棵不同的树之间工作。

但是我想阻止将节点放在与原始树不同的树上,因此当鼠标位于不同的树上时,不显示绿色箭头

任何解决方案?

1 个答案:

答案 0 :(得分:0)

实际上我通过向jstree添加一个插件找到了一个非常简单的解决方案:

$.jstree.plugins.myplugin = function (options, parent) {

    // Blocks DND on an other tree than the original one
    this.check = function (chk, obj, par, pos, more) {
        if(parent.check.call(this, chk, obj, par, pos, more) === false) { return false; }
        if (more && more.dnd && more.is_multi) {return false}
        return true;
        };
    };

“检查”功能已被“DND”和“类型”插件用于定义哪些节点是潜在的丢弃区域。这也可以显示绿色检查或红叉。 more.is_multi允许检测目标在与原始实例不同的树实例中的天气。

然后不要忘记在创建新的jstree实例时将此插件添加到插件列表中。