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",
//...
});
});


Я хотел бы изменить метку по умолчанию "New node" на " New folder "при нажатии на кнопку"create".
Любая помощь будет оценена по достоинству.

356   5  

5 ответов:

Вот как вы меняете параметры контекстного меню

$("#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"); }

Вот как изменить строки в jsTree V. 3. Примечание. это отличается от предыдущих версий, так как ключ-это текст, который вы хотите изменить ('New node' вместо new_node):

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

Согласно документации, вам просто нужно определить строковый параметр в основных настройках.

Например:

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

Добавьте строку после инициализации события create_node

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

Пример:

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

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

   ...

});

Добавить

Спасибо за вашу помощь. Я изменил новый узел на новую папку в 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"
            }
        },

Comments

    Ничего не найдено.