2013-08-23 2 views
0

У меня есть дерево, созданное с jquery jstree (1.0). Когда я создаю новый узел внутри определенного родительского узла в дереве, родительский узел открывается по умолчанию. Я хотел бы знать, как предотвратить открытие родительского узла. Я пробовал использовать «open_onmove»: false, но он не работает.jsTree -prevent родительский узел от открытия при создании нового узла

ответ

0

Это стандартное поведение и просмотр кода, я не вижу возможности обойти его. Предполагая, что вы используете команду element.jstree('create'..), вы обычно хотите сразу же открыть поле ввода для ввода нового имени папки, и это будет выглядеть странно, если он не расширит родителя.

Я не уверен, что ваш точный случай, но ищет в коде у вас есть эта линия вокруг 1340 в jstree 1.0-RC3

if(p.length && p.hasClass("jstree-closed")) { this.open_node(p, false, true); } 

Где p является родителем. Таким образом, в основном он открывает узел, если он еще не открыт. Если вы хотите не вмещать файл jstree (что вы, вероятно, захотите), я предлагаю обходное решение, в котором вы пытаетесь удалить или обработать класс родительского элемента .jstree-closed непосредственно перед добавлением нового узла, а затем замените класс в части обратного вызова element.jstree('create'..) или jstree.create_node(...), в зависимости от того, что вы используете.

+0

Я использовал обходное решение. Я слушаю событие «before.jstree», и если операция «open_node», то я препятствую выполнению операции в желаемых случаях (обусловленной переменной prevent_open). Спасибо за предложения. –

+0

Рад, что это сработало! –

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