Jquery 在jstree中的contextmenu之外动态重命名树节点

Jquery 在jstree中的contextmenu之外动态重命名树节点,jquery,rename,jstree,treenode,Jquery,Rename,Jstree,Treenode,我使用下面的代码在contextmenu之外的jstree中成功地创建了一个新的树节点。我的问题是,如何在contextmenu之外以类似的方式动态重命名树节点中的文本?是否有一个.jstree(“rename”…)函数可以被调用来完成这个任务?非常感谢 $("#RequirementsTree").jstree("create", null, "last", {"data" : "new_node_text", "state" : "open",

我使用下面的代码在contextmenu之外的jstree中成功地创建了一个新的树节点。我的问题是,如何在contextmenu之外以类似的方式动态重命名树节点中的文本?是否有一个.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");

然而,这不起作用。有什么我做错了吗?

这应该对你有用:

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


下面由凡人提出的建议对我不起作用。尽管我倾向于局限于jstree特定的代码,但我还是想出了一种jquery方法来绕过内置的“rename_node”和“set_text”方法,因为它们不适合我。我想我会在这里发布我的答案,以防其他人也有同样的问题:

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

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

我使用的是JStree1.0-rc3版本。下面的语法适用于我:

 $('#companyFields_tree').jstree('rename_node', '#0', 'testNewName' );
有一个决定:

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

$('#YourJSTree').jstree({ core: { check_callback: 'true' }, [...]

以下句子有效:

$(“#demo1”).jstree('set#u text',node,text)

也许最好从jstree站点获取一个文档列表,如果它有能力的话,它会马上给出概要。我在那里查看并尝试了$(“#RequirementsTree”)。重命名_节点(ReqNode,“test”);但是,那没用。我不知道交易是什么。我尝试了你建议的两种选择,但都不奏效。我知道我得到了li元素,因为我可以更改它的类,但是“rename_node”和“set_text”出于某种原因不起作用。我是否应该为该特定节点使用li元素以外的其他元素?@TheDude“node”需要处于
  • 级别ID。请尝试记录$(node).attr(“ID”)以查看显示的值。记住用ID字符串传递#$jstree('set#u text',[“#myID”,“SomeText]”);我必须将语法更改为
    $(“#demo1”).jstree('rename#node',[node],text)然后它工作了。它只是暂时显示出来。。当您实际再次进行编辑时,它会将文本设置为默认文本。。看一看