Drag & Drop строка с родителями и детьми - PullRequest
0 голосов
/ 12 марта 2019

У меня есть таблица, когда я интегрирую древовидную таблицу с simple-tree-table. С этим я могу работать с родителями и детьми, рухнуть и развернуться.

Теперь я пытаюсь перетаскивать строки с помощью сортируемой jQuery, и я могу хорошо перетаскивать строки, но мне нужно перетаскивать родителей вместе с их детьми, и теперь я могу перетаскивать только родителей. Я следовал этому учебнику .

Чтобы отсортировать строки, у меня есть этот код, если tr является дочерним, падение невозможно, иначе я могу отсортировать строки.

Что мне нужно, так это определить, есть ли у родителя дети, и если да, то я должен отказаться от родителя и ребенка. Как я могу это сделать?

<table id="gama">
  <tr data-node-id="1">
    <td>1</td>
    <td>text of 1</td>
  </tr>
  <tr data-node-id="1.1" data-node-pid="1">
    <td>1.1</td>
    <td>text of 1.1</td>
  </tr>
  <tr data-node-id="2">
    <td>2</td>
    <td>text of 2</td>
  </tr>
  <tr data-node-id="2.1" data-node-pid="2">
    <td>2.1</td>
    <td>text of 2.1</td>
  </tr>
</table>
$("#gama tbody tr.child").sortable({
  helper: fixHelperModified,
  stop: updateIndex,
  cursor: 'no-drop',
}).disableSelection();

$("tbody").sortable({
  distance: 5,
  delay: 100,
  opacity: 0.6,
  cursor: 'move'
});

1 Ответ

0 голосов
/ 12 марта 2019

Вы можете использовать jQuery для поиска элементов с атрибутом data-node-pid, которые начинаются с data-node-id.

родительского элемента. Например, чтобы найти дочерние элементы элемента с data-node-id="1", вы можете сделать:

$("tr[data-node-pid^='1']")

, который возвращает все узлы с data-node-pid, начинающимся с '1' (например, '1.1', '1.2.1' и т. Д.).Если он пуст, у родителя нет детей.

...