我正在使用此解决方案(Joint.js Drag and Drop Element between two papers)拖放两张完美合作的论文。
我想知道是否存在一种方法来知道你是否将鬼(即flyPaper图中的单元格)放在主图中的单元格上,如果有可能,我该如何获得这个单元格。
实际上,我想根据主图中放置单元格的位置执行不同的操作。例如,如果将单元格放在另一个单元格(具有精确类型)等上。
感谢您的帮助。
答案 0 :(得分:0)
这称为“重排”,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);
}
}
}