2012-01-13 1 views
0

Теперь я использую jQuery для динамического генерации DIV, основанного на пользовательском вводе. С характером того, как они генерируются и отформатированы, между DIV нет прямых отношений между родителями и дочерними элементами. На самом деле, я полагаю, самый простой способ объяснить это - генерация дерева. Я хочу, чтобы иметь возможность создать пользовательскую иерархию, чтобы, если элемент в верхней части дерева был удален, так и все его псевдо-дети.Пользовательская иерархия jQuery

Ниже приводится несколько визуальный пример. Диаграмма соответствует горизонтальной иерархии.

Level 1 Level 2 Level 3 
----------------------------- 

    X  X   X \ 
         X | >> These 3 elements are pseudo-children of 
         X/ the first elements in level 1 and level 2 

      X <<<<<< X << The element in level 2 is pseudo-child of 
         X  the first element in level 1 

    X  X   X 

      X   X 
         X  

UPDATE:

Пример кода:

<tr> 
    <td>Level1</td> 
    <td>Level2</td> 
    <td>Level3</td> 
</tr> 
<tr> 
    <td /> 
    <td /> 
    <td>Level3</td> 
</tr> 
<tr> 
    <td /> 
    <td /> 
    <td>Level3</td> 
</tr> 
<tr> 
    <td /> 
    <td>Level2</td> 
    <td>Level3</td> 
</tr> 
<tr> 
    <td /> 
    <td /> 
    <td>Level3</td> 
</tr> 

и т.д ... (соответствие диаграммы)

+0

ли контейнеры уровня братьев и сестер:


Может быть, я что-то кроме того, что случилось с этим не хватает? –

+0

Не совсем. Он отформатирован в таблице. Таким образом, уровень - это столбец, а отношение - это строка с определенным TD, заполненным содержимым –

+0

Итак, когда вы удаляете элемент вверху (элемент из первого столбца), просто удалите всю строку (со всеми псевдо- дети). Это не так? –

ответ

1

Я думаю, что вы хотите в HTML5 Flexible Box Module. Смотрите действительно хороший набор статей о нем here

И на детской площадке http://flexiejs.com/playground/ (вместе с х-браузер Java-библиотеки)


Я думаю, единственный способ сделать это с помощью таблицы в пользовательском интерфейсе также хранить дерево в памяти, а затем использовать это, чтобы «знать», что удалить.

<div id="a"> 
    <div id="b"> 
     <div id="c" /> 
     <div id="d" /> 
     <div id="e" /> 
    </div> 
    <div id="f"> 
     <div id="g" /> 
     <div id="h" /> 
    </div> 
</div> 
<div id="i"> 
    <div id="j"> 
     <div id="k" /> 
    </div> 
    <div id="l> 
     <div id="m" /> 
    </div> 
</div> 



Level 1 Level 2 Level 3 
----------------------------- 

    a  b   c \ 
         d | >> These 3 elements are pseudo-children of 
         e/ the first elements in level 1 and level 2 

      f <<<<<< g << The element in level 2 is pseudo-child of 
         h  the first element in level 1 

    i  j   k 

      l   m 
         n 
+0

Иерархия построена с использованием системы перетаскивания. К сожалению, этот метод становится беспорядочным для пользовательской ошибки. –

+0

+1 для того, как я бы хотел, чтобы это могло сработать в первую очередь. Несколько раз попробовав его, форматирование и вмешательство слушателя событий стали слишком большими –

+0

@KyleMacey - см. Править – Hogan