【发布时间】:2016-12-16 02:42:30
【问题描述】:
如果我有一个嵌套列表,例如:
root:
- A
- A1
- A2
- A2.1
- A2.1.1
- B
- B1
- B2
- C
如果我将一个元素拖到另一个列表中,我希望保持与顶部元素的命名相同。例如,如果我将 A1 下的某个元素拖到 C 中,则 A1 应该重命名为 C,因为新父级的名称是 C。如果我将一个元素拖到 A2.1.1 中,它应该成为 A2.1.1.1。像这样:
root:
- A
- A2
- A2.1
- A2.1.1
- A.2.1.1.1
- B
- B1
- B2
- C
- C1
这是一个示例 JS fiddle:http://jsfiddle.net/Lqttf/37/
我知道在 beforeMove 和 afterMove 函数回调中,它为您提供了一个 arg 参数,您可以在其中获取 targetParent。但是,targetParent 只给了我该目标内的子数组,无法获取父对象本身的名称或对象。
【问题讨论】:
-
在您的示例中,删除
A1后,现有的A2是否应该变为A1。? -
我想我必须考虑这两种情况,即对你的问题是和否,因为我还不知道。
-
这有很大的不同。如果将其更改为
A1,则意味着每个“名称”都只是基于项目在结构中的位置。 -
我认为我们很可能不得不将其更改为 A1。但同样的问题仍然存在,没有办法获取目标元素,只能获取目标可观察数组及其子元素。
标签: javascript jquery jquery-ui knockout.js jquery-ui-sortable