Как переименовать jsTree node

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

Ответы

Ответ 1

Метод рекомендуется использовать rename_node

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

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

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

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

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

Отладка

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

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

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

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

См. также:

Ответ 2

Я считаю, что в приведенном выше ответе есть синтаксическая ошибка в отношении квадратных скобок "[". Я использую 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");

Ответ 3

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

$('#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;
        }

});