Jquery 敲除可排序捕获复杂对象

Jquery 敲除可排序捕获复杂对象,jquery,knockout.js,jquery-ui-draggable,knockout-sortable,Jquery,Knockout.js,Jquery Ui Draggable,Knockout Sortable,我的页面使用Knockout.js。我的ViewModel包含一个对象数组。每个对象都包含一个child数组。更一般的是,它应该表示一个包含列和列内容的表 首先,我处理foreach:itemArray以获取列。然后我使用嵌套的foreach:childs,其中childs是列内容的数组 我的孩子们应该可以在柱子之间拖拉。因此,我用找到的js替换了嵌套的foreach 再次使用代码-第一阶段: <div id="lanesContainer" data-bind="foreach: l

我的页面使用Knockout.js。我的ViewModel包含一个对象数组。每个对象都包含一个child数组。更一般的是,它应该表示一个包含列和列内容的表

首先,我处理foreach:itemArray以获取列。然后我使用嵌套的foreach:childs,其中childs是列内容的数组

我的孩子们应该可以在柱子之间拖拉。因此,我用找到的js替换了嵌套的foreach

再次使用代码-第一阶段:

<div id="lanesContainer" data-bind="foreach: lanes">

然后跟随嵌套的foreach(在#lanesContainer内)

我的物品现在可以拖拽了,但掉下来不知怎么会失败。我的调试器在js的以下部分中断:

//take destroyed items into consideration
if (!templateOptions.includeDestroyed) {
  targetUnwrapped = targetParent();
  for (i = 0; i < targetIndex; i++) {
    //add one for every destroyed item we find before the targetIndex in the target array
    if (targetUnwrapped[i] && targetUnwrapped[i]._destroy) {
      targetIndex++;
    }
  }
}
//考虑已销毁的物品
如果(!templateOptions.includeDestroyed){
targetUnwrapped=targetParent();
对于(i=0;i

它在第三行中断,因为targetParent是一个对象,而不是一个函数。如何解决此问题?

更改
targetUnwrapped=targetParent()


更改
targetUnwrapped=targetParent()

好的,谢谢你。 我的ViewModel包含一个函数,在每次拖放时都会调用该函数

self.dropCallback = function (arg) {
    var item = arg.item;
    var sourceParent = arg.sourceParent();
    var targetParent = arg.targetParent();
    blah(); //console.log("Moved '" + arg.item.name() + "' from " + arg.sourceParent.id + " (index: " + arg.sourceIndex + ") to " + arg.targetParent.id + " (index " + arg.targetIndex + ")");
};
变量sourceParent和targetParent现在表示用于foreach的数组。我怎样才能再“走”一层,到下一位家长那里去?

好的,谢谢。 我的ViewModel包含一个函数,在每次拖放时都会调用该函数

self.dropCallback = function (arg) {
    var item = arg.item;
    var sourceParent = arg.sourceParent();
    var targetParent = arg.targetParent();
    blah(); //console.log("Moved '" + arg.item.name() + "' from " + arg.sourceParent.id + " (index: " + arg.sourceIndex + ") to " + arg.targetParent.id + " (index " + arg.targetIndex + ")");
};

变量sourceParent和targetParent现在表示用于foreach的数组。我怎样才能再“走”一层到下一个父级?

好的,是sourceParentNode.parent()好的,是sourceParentNode.parent()好的
self.dropCallback = function (arg) {
    var item = arg.item;
    var sourceParent = arg.sourceParent();
    var targetParent = arg.targetParent();
    blah(); //console.log("Moved '" + arg.item.name() + "' from " + arg.sourceParent.id + " (index: " + arg.sourceIndex + ") to " + arg.targetParent.id + " (index " + arg.targetIndex + ")");
};