2015-07-09 3 views
3

У меня есть дерево, образованное от , и я бы хотел отключить узел drag'n'drop от уровня к другому. Давайте рассмотрим пример:Отключить drag'n'drop от уровня к другому

  • Branch 1
    • лист 1
    • лист 2
    • лист 3
  • Отделение 2
    • лист 4
    • лист 5
  • Отделение 3
    • лист 6
    • лист 7
  • Отделение 4
    • лист 8

Я хочу, чтобы пользователь мог переместить ветвь/переупорядочить листья & ветви переупорядочиваем, но не способствуют leaf как branch или понижена с branch как leaf.

Я начал смотреть файл jstree.dnd.js, чтобы изменить состав, но, к сожалению, он из моей лиги.

Как я могу это сделать?

ответ

4

Вы можете использовать плагин jstree types. Просто включите его в свой конфигурационный массив plugins. Затем соответствующим образом сконфигурируйте свои узлы (чтобы назначить тип узлу, убедитесь, что он имеет свойство в JSON).

Вот пример конфигурации:

"types" : { 
    "#" : { // the root node can have only "branch" children 
     "valid_children" : ["branch"] 
    }, 
    "branch" : { // any "branch" can only have "leaf" children 
     "valid_children" : ["leaf"] 
    }, 
    "leaf" : { // "leaf" typed nodes can not have any children 
     "valid_children" : [] 
    } 
}, 

Вот демо:
http://jsfiddle.net/DGAF4/560/

Вы можете прочитать больше о типах плагинов в репо и на странице Docs.

Помните, что вы можете использовать функцию core.check_callback и избегать использования плагинов типов - это даст вам полное ручное управление, но немного сложнее в использовании. Я могу подробно остановиться, если вышеприведенное не работает для вас по какой-то причине.

 Смежные вопросы

  • Нет связанных вопросов^_^