Jointjs拖动链接目标时,让它调用自定义函数

时间:2016-08-05 21:17:12

标签: jointjs

我想覆盖默认的链接行为。我有一个功能,处理根据一组规则连接到目标的链接。例如,LinkTypeA只能连接到ObjectType1和ObjectType2,而LinkTypeB只能连接ObjectType3。

如果用户正在创建LinkTypeA,并在单击ObjectType3时终止,则会为链接目标创建点(x,y)。

这是因为ObjectType1和ObjectType2通常嵌入在ObjectType3之上。

我有正确的行为,但当你抓住一个链接结束并拖动它时,当它放手时,它会运行一个内部函数,它允许它连接到ObjectType3。

我想覆盖它并让它调用我的自定义函数。我怎么能这样做?

1 个答案:

答案 0 :(得分:2)

即使正在拖动链接,

linkValidation函数也应该处理它。在下面的示例中,只能链接具有相同类型的形状(rect与rect,circle with circle)。

var paper = new joint.dia.Paper({
    el: $('#paper'),
    width: 650,
    height: 400,
    model: graph,
    linkPinning: false,
    validateConnection: function(cellViewS, magnetS, cellViewT, magnetT, end, linkView) {
        var source = cellViewS.model.get('type');
        var target = cellViewT.model.get('type');

        return source && source === target;
    }
});

https://jsfiddle.net/vtalas/65uteht9/