1

我使用下面的代码在上下文菜单之外的 jstree 中成功创建了一个新的树节点。我的问题是如何在上下文菜单之外以类似的方式动态重命名树节点中的文本?是否可以调用 .jstree("rename" ....) 函数来完成此操作?非常感激!

$("#RequirementsTree").jstree("create", null, "last", {"data" : "new_node_text",
                  "state" : "open",
                  "attr" :  { "id" : "new_node_id", "name" : "requirement" }, 
 });

我尝试了以下方法:

        .bind("select_node.jstree", function(event, data) {
            ReqNode = data.rslt;

 $("#RequirementsTree").rename_node(ReqNode, "test");

然而,这并没有奏效。有什么我做错了吗?

4

5 回答 5

2

这应该适合你:

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

JSTree 核心文档...

如何-我-重命名-a-jstree-node

于 2012-09-15T08:17:22.847 回答
1

我正在使用 jsTree 1.0-rc3 版本。下面的语法对我有用:

 $('#companyFields_tree').jstree('rename_node', '#0', 'testNewName' );
于 2013-12-19T15:52:38.350 回答
0

Mortalus 的以下建议对我不起作用。虽然我更喜欢留在 jstree 特定代码的范围内,但我想出了一种 jquery hack 来绕过内置的“rename_node”和“set_text”方法,因为它们不适合我。我想我会在这里发布我的答案,以防其他人有同样的问题:

   $(Node).find("a").text("the_new_text_for_the_node_you_want_to_rename");

这对我有用。它基本上抓取 li 下方的锚元素并为其设置文本。

于 2012-09-15T13:09:34.067 回答
0

有决定:https ://groups.google.com/forum/#!topic/jstree/cq9wzW9Ia3s

很快,默认情况下 jsTree 会阻止他的树中的任何更改,因此您必须启用它:

$('#YourJSTree').jstree({ core: { check_callback: 'true' }, [...]
于 2015-03-26T17:57:33.777 回答
0

以下句子有效:
$("#demo1").jstree('set_text', node , text);

于 2015-07-15T09:50:05.250 回答