Чтобы манипулировать помеченными графами, я думаю, мне нужно добавить дополнительное свойство для каждой метки соединений jsPlumb. Например, когда я нажимаю на метку соединения, даже если исходная и целевая точки могут быть выведены из идентификатора метки (или атрибутов), я не могу знать, какой тип ребра был нажат.
Простого изменения графика jsPlumb недостаточно, потому что существуют базовые структуры данных, представленные графикой jsPlumb. Коды, использующие jsPlumb.ready и jsPlumb.bind, уже хорошо реализованы и отлично работают.
var newConn = jsPlumb.connect({ source: from, target: to,
endpoint: epStyle, detachable: false,
anchor: "Continuous", connector: ["StateMachine", { curviness: 20}],
paintStyle: lineSt, hoverPaintStyle: lineHoverSt,
overlays: [
["Arrow", { width: 10, length: 10, foldback: 1, location: 0.25,
id: "arrow_" + from + to + 1}],
["Arrow", { width: 10, length: 10, foldback: 1, location: 0.75,
id: "arrow_" + from + to + 2}],
["Label",
{ label: relation.name, id: "label_" + from + to + rel_id, cssClass: "edgeLabel"}
// Any additional property here?
]
]
});
//Or add property here?
newConn.type = SOME_EDGE_TYPE;
jsPlumb.ready(function () {
jsPlumb.bind("click", function (c) {
jsPlumb.detach(c);
});
jsPlumb.bind("beforeDetach", function (conn) {
return confirm(
"Are you sure you want to disconnect ["
+ conn.sourceId + "=>" + conn.targetId + "]?");
});
});