Jstree如何在创建新节点时更改“新节点”标签?

时间:2013-02-11 05:02:33

标签: jstree

我在创建新节点时使用了contextmenu插件,然后让我自己的函数使用ajax post back创建新节点。

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

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

点击“创建”时,我想将“新节点”的默认标签更改为“新建文件夹”。 任何帮助将不胜感激。

5 个答案:

答案 0 :(得分:12)

以下是如何在jsTree v.3中更改字符串。请注意,这与早期版本不同,因为密钥是您要更改的文本('New node'而不是new_node):

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

答案 1 :(得分: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"); }

答案 2 :(得分:1)

根据文档,您只需在核心设置中定义字符串参数。

例如:

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

答案 3 :(得分:1)

初始化create_node事件后添加行

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

示例:

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

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

   ...

});

添加

答案 4 :(得分: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"
            }
        },