Проблема с jstree может расширять узлы без дочерних элементов

Я работаю с jstree с ajax и вижу, что все мои узлы имеют стрелку для его расширения, даже те, у которых нет детей. На демонстрационной странице jstree http://www.jstree.com/demo это не так. Я не вижу в демонстрационном коде чего-то отличного от моего, значит, он исходит от сервера? Есть ли у меня параметр, который нужно указать в ответ на метод getChildren, чтобы сказать jstree: «этот, у него нет детей, не позволяйте его расширять»?

Кто-нибудь знает, откуда оно взялось? И что я могу сделать, чтобы это исправить?

Потому что это кажется проблемой, когда я использовал функцию копирования / вставки плагина contextmenu. Когда я вставляю узел (новый родитель) без дочерних элементов и еще не открытый (поэтому дочерние элементы не были загружены), ничего не происходит, кроме запроса на получение дочерних элементов (например, если я нажимаю, чтобы открыть узел), который явно ничего не возвращает . И он не выполняет функцию move_node.

РЕДАКТИРОВАТЬ: у меня такая же проблема с «добавить» из контекстного меню

Кто-нибудь может мне помочь?

Спасибо


person TiGi    schedule 21.09.2011    source источник
comment
Можете ли вы создать образец на jsfiddle?   -  person Radek    schedule 22.09.2011


Ответы (4)


Из документации jsTree:

http://www.jstree.com/documentation/html_data

один из трех классов будет применяться в зависимости от структуры узла:

<li class="[ jstree-open | jstree-closed | jstree-leaf ]"> 

Джонатан Стоуэлл прав, но установка для атрибута attr.class значения «jstree-leaf» не будет работать (по крайней мере, в последней версии).

Но «open» и «closed» напомнили мне о node.state, поэтому я попробовал, и оказалось, что когда вы устанавливаете node.state в «leaf» в вашем классе сериализации JSON, это будет нерасширяемый.

person Stefan Steiger    schedule 12.12.2011

Я добавил класс jstree-leaf к свойству attr для своих узлов, у которых нет потомков.

attr: { "class" : "jstree-leaf" }

Затем это устанавливает класс CSS, который вам нужен, чтобы не иметь функции расширения.

person Jonathan Stowell    schedule 22.09.2011

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

Надеюсь, это поможет.

person David Blanco    schedule 22.09.2011
comment
Мне пришлось установить это на «листья» в соответствии с затруднениями. «Закрыто» не сработало. - person fiat; 26.06.2012
comment
Мне также пришлось установить его на «Лист». - person Sean Anderson; 17.10.2012

если вы отправляете данные json, укажите «jstree-leaf» в качестве класса li_attr

 li_attr: {class = "jstree-leaf" }
person HubeybOzkul    schedule 13.08.2014