Плагин Fancytree jQuery не обрабатывает несколько элементов <UL> подряд

0

Я работал с плагином fancytree jQuery, написанным Мартином Вендтом, и это фантастика. Тем не менее, я боролся с одним конкретным аспектом. Я использую HTML, а не JSON для структуры данных дерева и обнаружил, что он отображает с отсутствующими узлами.

Я потратил довольно много времени, сужая это до того, что элемент управления Fancytree должен ожидать одну структуру <UL>. Все остальное в структуре должно быть вложенно в <LI>. Однако я не понимаю, почему. Позволь мне объяснить.

Вот несколько примеров HTML:

<div id="tree">
   <UL id="browser" class="filetree">
      <LI class="folder">
         Folder 1
         <UL>
            <LI>Nested Folder 1
               <UL>
                  <LI>Subitem1</LI>
                  <LI>Subitem2</LI>
               </UL>
            </LI>
         </UL>
         <UL>
            <LI>Nested Folder 2
               <UL>
                  <LI>Subitem1</LI>
                  <LI>Subitem2</LI>
               </UL>
            </LI>
        </UL>
      </LI>
   </UL>
</div>

Когда этот HTML-код отображается в IE, Chrome или почти любом браузере, он корректно отображается как два последовательных неупорядоченных списка с вложенными элементами. Однако, когда я применяю Fancytree, узел "Вложенная папка 2" полностью исчезает. На самом деле, нет ошибок JavaScript или предупреждений из фреймворка.

Поэтому мой вопрос несколько в два раза:

  1. Основываясь на стандартах W3C - это правильно оформленный синтаксис HTML? Я думаю да.

  2. Почему Fancytree не отображает вторую папку? Это ошибка с Fancytree? Есть ли настройка, которую я могу легко сделать, чтобы получить это?

Мой источник для этого HTML является динамическим и включает довольно сложный XSLT, поэтому я надеюсь, что ответ не должен реорганизовать структуру HTML.

Я был бы очень признателен за понимание, которое может быть предложено.

Теги:
fancytree

1 ответ

0

Продолжая двигаться вперед с этими усилиями, я смог ответить на собственные вопросы.

Несколько элементов <UL>

Синтаксис HTML нескольких элементов < UL> в строке действительно отлично. Однако, когда данные структурированы в этом формате, второй неупорядоченный список действительно становится его собственной сущностью. Вся суть структуры заключается в создании чего-то, что может быть полностью представлено как единая древовидная структура и поэтому содержит один корневой элемент <UL> и дочерние узлы. Конечно, дочерние узлы могут иметь других детей, которые становятся вложенными неупорядоченными списками <UL> с элементами списка <LI>.

Вот пример:

  • Контрольная работа
  • Другой тест

FancyTree jQuery Plug-in

FancyTree работает таким образом, основываясь на приведенном выше ответе.

После настройки XSLT для вызова отдельных шаблонов, размещенных в контейнерах <UL> каждый шаблон XSL будет правильно добавлять собственные элементы списка, если необходимо. Конечным результатом является представление дерева представления структуры данных HTML.

Единственное, что также выяснилось, было то, что XSLT должен был выполнить логические проверки перед рендерингом узла. Причина заключалась в том, что если в шаблоне не было элементов списка для добавления в структуру, создание пустого <UL> сработало бы рендеринг дерева. В этом случае это привело к тому, что узлы дерева стали дочерними элементами неправильного родительского элемента.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню