Я генерирую дерево (вложенный список UL) с помощью javascript, используя функцию самозапуска. Я могу добавить, что он находится в плагине jQuery, если это вообще имеет отношение к проблеме (возможно, это может быть?).функция самозапуска внутри jQuery plugin
Переменная Г.Д. содержит JSON/массив понюхал из filestructure, так что в основном папки и изображения Имен, и еще некоторые данные (например, само-explainatory атрибут isFolder и т.д.)
for (i = 0; i < gd.length; ++i) {
прерывается самообзыв.
var drawTree = function(self,parent){
var gd = self.data('galleryData');
self.data('sidebar', self.data('sidebar')+'<ul>');
for (i = 0; i < gd.length; ++i) {
console.log('looping '+i+': '+gd[i]['name']+', isFolder: '+gd[i]['isFolder']+', parent: '+gd[i]['parent']);
if ((gd[i]['isFolder'] == true) && (gd[i]['parent'] == parent)) {
console.error(gd[i]['name']);
self.data('sidebar', self.data('sidebar')+'<li data-folder="'+gd[i]['fileId']+'" class="folderLink">');
self.data('sidebar', self.data('sidebar')+gd[i]['name']);
self.data('drawTree')(self,gd[i]['fileId']); // <-- The line causing trouble
self.data('sidebar', self.data('sidebar')+'</li>');
}
}
self.data('sidebar', self.data('sidebar')+'</ul>');
};
this.data('drawTree',drawTree);
Моя проблема заключается в том, что если я уйду из «проблемной» линии
self.data('drawTree')(self,gd[i]['fileId']);
который является один делает самозапуск вызов (который позволяет мне также список вложенных папок), то я получаю аккуратный список всех папок уровня 0 (те, у которых нет родительского или родительского атрибута, установленного в пустую строку). Но тогда, конечно, я не получу ни одной из вложенных папок.
Root
actions
appz
categoriez
david
devices
mimetypes
places
space
status
Если я включать самозапуска вызов, я получаю все вложенные уровни, но только для самого первого из папки на «уровне 0», а если основной цикл (эта строка из кода выше)
Root
actions
actionsSub1
actionSub2
actionSub3
actionSub4
Так просто, но так важно =) Большое спасибо. –