Как я могу переименовать узел jsTree - PullRequest
16 голосов
/ 06 июня 2011

Я не говорю о $("#demo1").jstree("rename",node), который делает узел редактируемым для пользователя. Я говорю об изменении имени в коде. Например, все мои узлы имеют префикс двухзначного числа «[01]», поэтому, прежде чем я позвоню $("#demo1").jstree("rename",node), я хочу удалить префикс и вернуть его обратно, как только пользователь закончит редактирование. Я попытался выбрать "#nodeid a", но внутри гиперссылки есть тег ins, и он заменяется, если я заменяю содержимое URL. Документация не помогла, и мне не очень повезло, просматривая код библиотек. Может ли это помочь мне? Chris

Ответы [ 3 ]

24 голосов
/ 06 июня 2011

рекомендуемый метод заключается в использовании rename_node

$("#demo1").jstree('rename_node', node , text );

Пожалуйста, имейте в виду , что по умолчанию все модификации дерева запрещены (создание, переименование, перемещение, удаление).Чтобы включить их, установите для core.check_callback значение true

$('#demo1').jstree({
    'core': {
        'check_callback': true,
        /// rest of the options...
    }
});

Переименуйте свой узел (альтернативно, не рекомендуется)

$("#demo1").jstree('set_text', node , text );

Отладка

Если вы все еще сталкиваетесь с проблемами, вы можете использовать этот метод для получения последней ошибки.

$('#demo1').jstree(true).last_error()

Для более старых версий (v1. *)

$("#demo1").jstree('rename_node', [node , text] ); 
$("#demo1").jstree('set_text', [node , text] ); 

См. Также:

5 голосов
/ 12 декабря 2015

Я считаю, что есть синтаксическая ошибка в отношении квадратных скобок "[" в ответе выше. Я использую jsTree 3.0.4, и это правильный синтаксис -

right -    $("#demo1").jstree('set_text',node,text);
wrong -    $("#demo1").jstree('rename_node', [node , text] );    

Example - 
$("#tree_3").jstree('set_text',"#idSelectorForNode" ,"NewName");
1 голос
/ 27 января 2016

Вы должны включить переключатель, чтобы разрешить операцию переименования, например:

$('#container').jstree({
    'core' : {
        'check_callback' : function (operation, node, node_parent, node_position, more) {
            // operation can be 'create_node', 'rename_node', 'delete_node', 'move_node' or 'copy_node'
            // in case of 'rename_node' node_position is filled with the new node name
            return operation === 'rename_node' ? true : false;
        }

});
...