ノードをユーザーが編集できるようにする$("#demo1").jstree("rename",node)
については話していません。コード内で名前が変更されていることについて話しています。たとえば、ノードにはすべて2桁の数字「[01]」が付いているので、$("#demo1").jstree("rename",node)
を呼び出す前に、接頭辞を取り除き、ユーザーが編集を終えたら元に戻します。 「#nodeida」を選択しようとしましたが、ハイパーリンク内にinsタグがあり、URLの内容を置き換えるとこれが置き換えられます。ドキュメントは役に立たず、ライブラリコードを調べるのにあまり運がなかったのですが、何か助けになりますか?クリス
推奨メソッドは 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] );
関連項目:
rename_node
のAPIドキュメントset_text
のAPIドキュメント上記の回答の角括弧「[」に関して構文エラーがあると思います。私はjsTree3.0.4を使用していますが、これは正しい構文です-
right - $("#demo1").jstree('set_text',node,text);
wrong - $("#demo1").jstree('rename_node', [node , text] );
Example -
$("#tree_3").jstree('set_text',"#idSelectorForNode" ,"NewName");
次のような名前変更操作を許可するには、スイッチをオンにする必要があります。
$('#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;
}
});