2016-09-11 7 views
0

Я использую плагин jstree dnd. Чтобы установить узлы, где разрешено удаление, я использую плагин «типы» и свойство valid_children. Это работает даже между двумя разными деревьями.JsTree: предотвращение перетаскивания между двумя разными деревьями

Однако я хотел бы предотвратить падение узла на другом дереве, чем исходный, и поэтому не показывать зеленую стрелку, когда мышь находится на другом дереве.

Любое решение для этого?

ответ

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.