2011-06-06 75 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; 
         } 
    
    }); 
    
    相關問題