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".
Любая помощь будет оценена по достоинству.
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_nodedata.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