Я использую jsTree для создания индекса списка документации. Я использую JSON для создания своего дерева. У меня проблема и вопрос.
Моя проблема в том, что один и тот же значок (значок по умолчанию установлен в типах) отображается как для папок, так и для файлов. Когда я меняю значок по умолчанию, все значки дерева устанавливаются на этот значок. Если я не использую подключаемый модуль типов, для всех значков используется значок папки по умолчанию.
Конфигурация jstree:
$("#agac_tutacagi").jstree({
"plugins" : [ "themes", "json_data", "types", "ui"],
"core":{
"animation":500,
"strings":{
"loading":"Yükleniyor"
}
},
"types":{
"types":{
"max_children" : -2,
"max_depth" : -2,
"folder" : {
"valid_children" : [ "default", "dizin", "dosya" ],
"icon" : {
"image" : "/static/p/js/jsTree/_demo/folder.png"
}
},
"file" : {
"valid_children" : "none",
"icon" : {
"image" : "/static/p/js/jsTree/_demo/file.png"
}
},
"default" : {
"icon" : {
"image" : "/static/p/js/jsTree/_demo/file.png"
}
}
}
},
"json_data" : {
"ajax" : {
"url" : "/dokumantasyon/dokumanAgaciOgesiAl/"
}
}
});
Пример JSON:
[{
"data": {
"icon": "folder",
"title": "Sıkça Sorulan Sorular"
},
"children": [{
"data": {
"icon": "file",
"attr": {
"onclick": "dokuman_getir(4)"
},
"title": "Program makbuz basmadı"
}
}]
}]
Значок устанавливается в словаре данных, как показано в документации sjtree. Но это бесполезно. Ошибки нет, все нормально, кроме значка дерева.
Мой второй вопрос: как я могу настроить jstree, чтобы, когда я нажимаю родительский узел (папку), он расширяется, как если бы щелкнула стрелка раскрытия.
2 ответа
Данные вашего ответа должны выглядеть так:
[{"attr":{"id":"node_2","rel":"folder"},"data":"root","state":"closed"}]
Это массив с одним узлом, но вы можете вернуть несколько в массиве, чтобы создать несколько узлов.
"state":"closed"
- это ключ, который указывает jsTree запрашивать дочерние узлы с вашего сервера при нажатии / раскрытии.
"rel" : "folder"
указывает jsTree использовать тип папки, определенный в узле "types"
, который у вас был выше. Затем используется значок, указанный для типа "folder"
.
Чтобы создать поведение щелчка для раскрытия, вы можете использовать плагин типов, чтобы переопределить поведение щелчка по умолчанию:
"types":{
"types":{
"max_children" : -2,
"max_depth" : -2,
"default" : {
"valid_children" : [ "default"],
"select_node" : function (e) {
this.toggle_node(e);
return false;
}
},
...
"plugins" : [ "themes", "html_data", "ui","types" ]
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.