Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Не добавляются элементы в корень jsTree (https://javascript.ru/forum/jquery/11596-ne-dobavlyayutsya-ehlementy-v-koren-jstree.html)

Dr.Freddy 02.09.2010 09:18

Не добавляются элементы в корень jsTree
 
Доброго дня.

Использую jsTree для построения однородного (элементы / папки) дерева на основании примера, который идет с дистрибутивом. Все нормально настроилось и работает, единственный нюанс: невозможно добавить элементы в корень дерева через веб-интерфейс.

Через БД такой элемент создать можно, он будет нормально функционировать и analyze() никаких проблем при этом фиксировать не будет.

Приложение тут: http://drfreddy.ru/jstree/

Потестил, понял что проблема именно в коде или настройке jsTree, ибо запрос на добавление нового элемента в объект БД даже не попадает. Но где этот код или эта настройка - не очень ясно :)

Как правильно решить эту проблему? В javascript'ом jsTree справиться пока не получается, единственный вариант, который пока пришел в голову — завести корневой неудаляемый узел, от которого будут наследоваться все остальные. Но это скорее костыль, чем решение — судя по нормальному добавлению корневых элементов через базу, как-то должно включаться и добавление через веб-интерфейс.

Dr.Freddy 02.09.2010 14:25

Решение: после

.bind("create.jstree", function (e, data) {

в конфигурации добавляем

try {
          node_id = data.rslt.parent.attr("id").replace("node_","");
        }
        catch (e) {
          node_id = 1;        
        }

И меняем .bind("create.jstree", function (e, data) {

try {
node_id = data.rslt.parent.attr("id").replace("node_","");
}
catch (e) {
node_id = 1;
}

Соответственно меняем в post-вызове параметр id на:
"id" : node_id,

Sorbing 18.02.2011 19:43

Простите, Вы не могли бы подробнее описать решение такой задачи.
Похоже изменилась версия jsTree, т.к. аналогичного кода, который нужно заменить я не нашел.
Спасибо за помощь.


Часовой пояс GMT +3, время: 15:22.