2013-02-11 127 views
3

我在創建新節點時使用contextmenu插件,然後使用自己的函數來創建使用ajax回發的新節點。Jstree如何在創建新節點時更改「新節點」標籤?

$("#tree").jstree({ 
      //.... 

      "plugins": ["themes", "json_data", "crrm", "contextmenu", "dnd", "ui", "cookies"] 
}) 
//... 
.bind("create.jstree", function (e, data) { 
      //... 
      $.ajax({ 
        type: "POST", 
        //... 
        }); 
}); 

我想在點擊「創建」時將「New node」的默認標籤更改爲「New folder」。 任何幫助,將不勝感激。

回答

3

這裏是你如何更改上下文菜單選項

$("#tree").jstree({ 
"plugins": ["themes", "html_data", "ui", "crrm", "contextmenu"], 
"contextmenu": { 
    "items": function ($node) { 
     return { 
      "Create": { 
       "label": "New Folder", 
       "action": function (obj) { 
        this.create(obj); 
       } 
      } 
     }; 
    } 
} 
}); 

更新

你可以找到這部分jquery.jstree.js文件

if(!js.data) { js.data = this._get_string("new_node"); } 

改變這部分

if(!js.data) { js.data = this._get_string("new folder"); } 
+0

謝謝您的回答。這將在上下文菜單中將「創建」更改爲「新建文件夾」。但我的意思是,當你從contextmenu中選擇create時,它會創建一個節點並默認將其標記爲'new node'。我想要做的是將此標籤從「新節點」更改爲「新文件夾」或其他任何內容。其他解決方案? – user1684931 2013-02-18 02:13:35

+0

我不確定最佳的靈魂,但這似乎工作。只需在jquery.jstree.js中搜索新節點,並將名稱從new_node更改爲New Folder。 – jeev 2013-02-18 04:35:45

+0

從另一篇SO文章開始,你可以通過這樣的上下文菜單動態加載它(並且我對未格式化的代碼表示歉意):''action「:function(data)var inst = $ .jstree.reference data.reference), obj = inst.get_node(data.reference); (函數(){inst());(){}(){} {} {} { .edit(new_node);},0); });' – codermjb 2016-04-01 02:52:38

0

謝謝你的幫助。我在默認情況下將新節點更改爲jquery.jstree.js文件中的新文件夾,並且它工作正常。再次感謝你。

$.jstree.plugin("core", { 
     __init : function() { 
      this.data.core.locked = false; 
      this.data.core.to_open = this.get_settings().core.initially_open; 
      this.data.core.to_load = this.get_settings().core.initially_load; 
     }, 
     defaults : { 
      html_titles : false, 
      animation : 500, 
      initially_open : [], 
      initially_load : [], 
      open_parents : true, 
      notify_plugins : true, 
      rtl   : false, 
      load_open : false, 
      strings  : { 
       loading  : "Loading ...", 
       new_node : "New folder", 
       multiple_selection : "Multiple selection" 
      } 
     }, 
1

根據文檔,您只需要在覈心設置中定義字符串參數。

例如:

 $("#content_tree").jstree({ 
      core: { 
       animation: 100, 
       strings : { loading : "Loading ...", new_node : "New folder" } 
      }, 
      "plugins" : [ "themes", "html_data"] 
     }); 
10

下面是如何改變字符串jsTree第3節。請注意,這是從早期版本不同,因爲關鍵是要改變(的'New node'代替new_node)文字:

$("#content_tree").jstree({ 
    core: { 
     strings : { 
      'New node': 'Your Text' 
     } 
    } 
}); 
1

添加行後初始化create_node事件

data.node.text = 'My Custom Name'; 

例如:

$('#selector').jstree(...).on('create_node.jstree', function (e, data) { 

    data.node.text = 'My Custom Name'; 

    ... 

}); 

add