我似乎无法弄清楚如何选择特定的 jsPlumb 连接器。我知道我可以选择与源或目标相关的所有连接器,但通常我会在同一个源和目标之间有多个连接器,因此在这种情况下我看不到能够选择特定连接器的方法。
我的具体用例如下:
如果用户单击连接器,他们会看到一个允许他们编辑连接的对话框。(即设置标签名称,删除连接)。现在,如果他们设置标签或删除连接,我将被迫分离图表中的所有内容,然后重新绘制所有内容。此方法有效,能够仅分离已修改的一个连接或仅更改其标签似乎更清洁。
想法?
我似乎无法弄清楚如何选择特定的 jsPlumb 连接器。我知道我可以选择与源或目标相关的所有连接器,但通常我会在同一个源和目标之间有多个连接器,因此在这种情况下我看不到能够选择特定连接器的方法。
我的具体用例如下:
如果用户单击连接器,他们会看到一个允许他们编辑连接的对话框。(即设置标签名称,删除连接)。现在,如果他们设置标签或删除连接,我将被迫分离图表中的所有内容,然后重新绘制所有内容。此方法有效,能够仅分离已修改的一个连接或仅更改其标签似乎更清洁。
想法?
据我了解您的问题,您希望在用户单击连接时断开连接。
你需要做什么:
在与jsPlumb 事件的连接上注册“单击”侦听器
一旦触发点击事件,在触发事件的连接上使用jsPlumb.detach,这将删除它,同时保持端点不变。
这是我使用的代码示例:
//connection was established let's add listener
jsPlumb.bind("jsPlumbConnection", function(info) {
//get connection from event info
var connection = info.connection;
//add on click event
connection.bind("click", function(conn) {
jsPlumb.detach(conn);
});
});
if(action == "delete"){
jsPlumb.remove(object_selected, {
fireEvent: false,
forceDetach: false
})
或这个:
$(document).keyup(function(e){
if(e.keyCode == 46){
if(connection != null){
jsPlumb.detach(connection);
connection = null;
}
if(object_selected != null){
jsPlumb.remove(object_selected);
object_selected = null;
}
}
})