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

jsplumb分离使endpoint挂起

柯曜文
2023-03-14

我不希望源endpoint与相同元素的目标endpoint连接,因此在连接事件中,我分离当前连接,如

jsPlumb.bind("connection", function(info){
        if(info.sourceId === info.targetId){
            jsPlumb.detach(info.connection);
            return true;    
        }
});

但这会使我的源endpoint与div分离,在我拖动div后,endpoint挂在同一位置,如下图所示(点是我的源endpoint和目标endpoint中的矩形)。

在创建连接之前

创建连接后

在这种情况下,我不希望Join_1的源endpoint与Join_1的目标endpoint连接。

我使用jsPlumb 1.7.2版本。这是一个错误,我怎么能修复这个。

共有1个答案

田镜
2023-03-14

您可以尝试使用beForeDrop事件代替连接,如果条件返回false。

jsPlumb.bind("beforeDrop", function(info){              
    if(info.sourceId === info.targetId){
        return false;    
    }
});

也升级到1.7.4版本。

希望能有帮助。

 类似资料:
  • 我是jsPlumb的新手,我遇到了一个源和目标相同的连接问题。我必须禁止这些类型的连接,我认为最好的方法是:当我完成创建连接时,如果它具有相同的sourceId和targetId,则删除连接。我正在这样做: 连接被删除,但看起来源endpoint仍然存在,但是,如果我拖动该项目,点会停留在相同的地方,就好像它不再引用该项目一样,这是可以的,因为连接被删除了,但它不是好吧,因为那个点不应该在那里。

  • 我已经被这件事困扰了几天,希望你能帮助我解决这个问题。我创建了一个类似流程图的应用程序来绘制不同类型的铅锤项目,并将不同的endpoint连接到这些项目上。将其创建为元素后,将根据铅锤项目的类型动态添加endpoint。是这样的吗。 这就是我创建铅锤项目的方式。 然后根据endpoint的类型添加endpoint。 这就是它看起来的样子 屏幕一 我设法从方法“GetConnections”中获取数

  • 我试图找出一种方法,如何将endpoint锚动态添加到jsPlumb容器中。 我希望源endpoint位于左侧,目标endpoint仅位于右侧。 问题是,我无法找到任何方法来做到这一点,而不是像我现在这样求助于一些黑客。 jsPlumb支持连续锚,但单个锚的位置将根据连接器之间的方向和连续锚的数量重新计算。这意味着源endpoint和目标endpoint可以共享容器的同一侧,这是我希望避免的。 这

  • 我正在使用jsPlumb创建一个包含两列的匹配小部件。 jsPlumb实例创建为: 我创建了源和目标,如下所示: 连接过程正常工作。但是在建立一个连接后的问题如果我删除连接,连接endpoint仍然可见。 我尝试添加配置“\u deleteondetch”,还尝试删除connectiondeach上的endpoint。在这两种情况下,endpoint都被删除,但在我尝试连接相同的元素时,它会出错。

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

  • 我试图创建动态endpoint,作为我的连接和运行问题的覆盖。我试图模拟这个人在SO上有什么: jsPlumb连接自定义覆盖-endpoint未移动 然而,当我达到这一点时,无论我尝试做什么: 我无法识别连接。我尝试将此逻辑放入绑定连接中,但在尝试建立连接覆盖时,这也不起作用。在这方面提供任何帮助都会非常有帮助。