与父母和孩子一起拖放行

问题描述 投票:0回答:1

当我将树桌与simple-tree-table集成时,我有一张桌子。有了这个,我可以与父母和孩子一起工作,崩溃和扩大。

现在我正在尝试拖放jQuery排序的行,我可以很好地拖动行,但我需要将父母和他们的孩子一起拖动,现在发生的事情是我只能拖动父。我跟着这个tutorial

要对行进行排序,我有这个代码,如果tr是一个孩子,那么drop是不可能的,否则我可以对该行进行排序。

我需要的是检测父母是否有孩子,如果有,那么我必须放弃父母和孩子。我怎样才能做到这一点?

<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'
});
javascript jquery treeview jquery-ui-sortable
1个回答
0
投票

您可以使用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'等)。如果它是空的,则父母没有孩子。

© www.soinside.com 2019 - 2024. All rights reserved.