2011-06-06 71 views
15

我不是在谈论$("#demo1").jstree("rename",node)这使得节点可以为用户编辑。我正在谈论代码中被更改的名称。例如,我的节点都以2位数字“[01]”为前缀,所以在我拨打$("#demo1").jstree("rename",node)之前,我想删除前缀,并在用户完成编辑后重新放回。我试过选择“#nodeid a”,但在超链接里面有一个ins标签,如果我替换了URL内容,这将被替换。该文档没有帮助,我没有很好的运气看库代码,可以帮助我吗?克里斯如何重命名jsTree节点

+0

如何使用正则表达式来分开使用从 – 2011-06-06 16:01:55

+0

单词的数字继续..提供给我一个jQuery选择器然后,我看看它是否工作.. – Chris 2011-06-06 16:23:32

回答

21

推荐方法是使用rename_node

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

Please keep in mind默认情况下所有的修改树是 防止(创建,重命名,移动,删除)。为了让他们设置 core.check_callback为true

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

重命名节点(替代,不推荐)

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

调试

如果您仍然遇到麻烦,你可以使用此方法获取最后一个错误。 (V1 *)

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

对于旧版本的

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

参见:

+11

$(“#demo1”)。jstree('set_text',node,text);作品 – jnoreiga 2012-02-15 18:53:53

+1

根据[文档](https://www.jstree.com/api/#/?f = set_text(obj%2C%20val)),'set_text()'在内部使用,请使用'rename_node(obj,val)'**。 – Pang 2015-10-13 04:58:26

+0

正如@jnoreiga所述:对于'set_text'方法,我必须将'rename_node'语法更改为'$(“#demo1”)。jstree('rename_node',[node],text);'然后它就起作用了。 – Twix 2016-01-02 06:24:02

5

  • 我相信是有关​​于方括号 “[” 的语法错误在文档上面的答案。我用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"); 
    
    +0

    谢谢!更好 - $(“#demo1”)。jstree('rename_node',node,text); (因为set_text是私有方法) – Shoham 2016-03-01 10:54:16

    1

    你应该打开开关,允许重命名操作,如:

    $('#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; 
         } 
    
    }); 
    
    相关问题