如何删除元素并嵌入jointjs

时间:2017-08-07 07:58:39

标签: javascript svg jointjs

我正在使用JointJS来创建动态图。在我的场景中,我有两篇论文。左边包含元素形状作为模板,我可以拖放到右边的纸张。一切都很好。但现在我想将一个元素形状放在另一个元素形状上(例如耦合元素)。如果左侧元素与右侧纸张上的任何其他元素相交,则应触发事件,将新元素形状嵌入到现有元素中。

到目前为止我得到了这个,但交叉点不起作用:

...

//try to embed by dropping
_.each(graph.getElements(), function (el) {
    if (el.getBBox().intersect(cellView.model.getBBox())) {
        //embed element one into element two
    }
});

...

提前致谢!

1 个答案:

答案 0 :(得分:1)

现在我要回答我自己的问题......

//get all existing elements and iterate through
_.each(graph.getElements(), function (elements) {
    //let s be the new element to drag over the parent element
    if (s.getBBox().intersect(elements.getBBox())) {
        //add a condition if you want....
        if (elements instanceof joint.shapes.devs.Coupled) {   
            //now embed the new element into the existing one
            elements.embed(s);
        }
    }
});