当前位置: 首页 > 知识库问答 >
问题:

jsPlumb-使用sourceId==targetId分离连接

路和悌
2023-03-14

我是jsPlumb的新手,我遇到了一个源和目标相同的连接问题。我必须禁止这些类型的连接,我认为最好的方法是:当我完成创建连接时,如果它具有相同的sourceId和targetId,则删除连接。我正在这样做:

jsPlumb.bind('connection', function(info) { 
    console.log('connection bind - From: ' + info.sourceId + ' To: ' + info.targetId);

    if (info.sourceId == info.targetId) {
        console.log('sourceId == targetId');
        jsPlumb.detach(info);
    }
});

连接被删除,但看起来源endpoint仍然存在,但是,如果我拖动该项目,点会停留在相同的地方,就好像它不再引用该项目一样,这是可以的,因为连接被删除了,但它不是好吧,因为那个点不应该在那里。

有什么意见吗?非常感谢。

共有1个答案

幸经艺
2023-03-14

我用以下方法解决了这个问题:

jsPlumb.bind("connectionDragStop", function (connection) {
    //console.log("connectionDragStop");
    if (connection.sourceId == connection.targetId) {
        //console.log('sourceId == targetId');
        alert("Connections with the same source and target aren't allowed. The connection will be deleted.");
        jsPlumb.detach(connection);
    }
});

它现在工作得很好。

 类似资料:
  • 点击我查看例子 使用jsplumb开发连接线条的功能,但是如果滚动条把当前连线的item滚到视线之外,然后获取线条数据,发现sourceId或者targetId不正确,请问如何解决? 正常是这样的: 异常是这样的:

  • 我不希望源endpoint与相同元素的目标endpoint连接,因此在连接事件中,我分离当前连接,如 但这会使我的源endpoint与div分离,在我拖动div后,endpoint挂在同一位置,如下图所示(点是我的源endpoint和目标endpoint中的矩形)。 在创建连接之前 创建连接后 在这种情况下,我不希望Join_1的源endpoint与Join_1的目标endpoint连接。 我使用

  • 我有div,可以拖放到绘图区域。可以使用鼠标从源endpoint拖放到目标endpoint手动连接这些div。在这样创建的连接上,连接被分离,但endpoint保留,删除的连接可以通过上述相同的手动过程重新创建。现在,我还将以json格式的连接节点流程图形式的绘图保存到磁盘文件中。在加载文件时,流程图会完美地显示所有连接和节点。现在我在点击一个节点时删除一个连接,它就可以工作了。但是现在我不能再次

  • 我想画一个流程图。我动态创建div,并为每个div设置了唯一的“id”属性,并使用Jsplumb连接器连接它们。 我从数据库中获取源和目标id(请注意,动态创建的div的“id”属性是其从数据库中的id),并存储在“connectors”json中。其格式如下: {[from:A,to:B],[from:A,to:C],[from:B,to:C]} jsplumb代码如下 问题: 我现在拥有的是

  • SourceID开源的联合身份认证管理.它提供了实现SAML,ID-FF和WS-Federation安全协议的工具包与项目.

  • 我试图以编程方式建立一些连接。问题是,当绘制连接时,会创建新的endpoint,而现有endpoint不再可单击。我确实有拖动行为的endpoint。我无法让endpoint(由连接创建)具有与原始endpoint相同的属性。 我做了一个工作jsFiddle:http://jsfiddle.net/SCSaf/4/ 在下面的代码中,初始化容器并绘制连接 在公共变量中,我尝试将源endpoint(e