在单元格上的两篇论文之间拖放 - JointJs

Drag and drop between two papers on a cell - JointJs

我正在使用这个解决方案 (Joint.js Drag and Drop Element between two papers) 来拖放两篇论文,效果非常好。

我想知道是否存在一种方法可以知道您是否将重影(即 flyPaper 图中的单元格)放在主图中的单元格上,如果可能的话,我如何才能得到这个细胞.

事实上,我想根据单元格在主图中的放置位置执行不同的操作。例如,如果将单元格拖放到另一个单元格(具有精确类型)等

感谢您的帮助。

这称为 "reparenting" 并且来自 JointJs 的以下代码描述了如何进行重新设置但是在一篇论文中(不是通过两篇论文)- Reparenting

主要思想是将此单元格嵌入到父单元格中,使用以下代码完成:

$('body').on('mouseup.fly', function(e) {
    var x = e.pageX,
      y = e.pageY,
      target = paper.$el.offset();

    // Dropped over paper ?
    if (x > target.left && x < target.left + paper.$el.width() && y > target.top && y < target.top + paper.$el.height()) {
      var s = flyShape.clone();
      s.position(x - target.left - offset.x, y - target.top - offset.y);
      graph.addCell(s);
      //get the parent cell and embed the dragged cell with it
      if (cellViewsBelow.length) {
        var cellViewBelow;
        for (var i = 0; i < cellViewsBelow.length; i++) {              
          if (cellViewsBelow[i].model.id !== s.id) {
            cellViewBelow = cellViewsBelow[i];
          }
        }
        // Prevent recursive embedding.
        if (cellViewBelow && cellViewBelow.model.get('parent') !== s.id) {
          cellViewBelow.model.embed(s);
        }
      }
    }