рисуем дерево. рекурсия с большой глубиной вложенностинаткнулся я тут на неприятность. При загрузке массива, кот. описывает дерево, у меня элементы прописываются не в том порядке, в каком они должны быть выведены в таблице. Так и задумано было :-) Я сначала вывожу всех нулевого уровня, затем всех первого и т.д. Этого достаточно, чтобы соблюдалось условие "парент всегда перед чайлдом". Т.е. любому чайлду есть на кого сослаться при создании.
Затем я генерю строки таблиц с использованием рекурсии. Принцип: function DrawNode(id, tbl) { .DrawOneNode(id, tbl); .if (Nodes[id].children.length > 0) { ..var j = 0; ..for (j in Nodes[id].children) { ...DrawNode(Nodes[Nodes[id].children[j]].id, tbl); ..} .} }
Так вот. При глубине вложенности вплоть до 10 все работает. Но дальше MSIE начинает странно ругаться. говорит, что не определена переменная ie. Чушь полнейшая. Определена она. Не сталкивался ли кто с глюками в MSIE5 когда рекурсивный вызов функции имеет большую глубину вложенности? |