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

jsplumb连接不工作

方长卿
2023-03-14

我试图以编程方式建立一些连接。问题是,当绘制连接时,会创建新的endpoint,而现有endpoint不再可单击。我确实有拖动行为的endpoint。我无法让endpoint(由连接创建)具有与原始endpoint相同的属性。

我做了一个工作jsFiddle:http://jsfiddle.net/SCSaf/4/

在下面的代码中,初始化容器并绘制连接

jsPlumb.connect({source: "container1", target: "container2"}, common);

在公共变量中,我尝试将源endpoint(exampleGreyEndpointOptions)的属性与endpoint(endpointOptions)的属性组合在一起。在公共变量中,我使用paintStyle使线/阵列与可拖动的线/阵列相同。锚固件的定义旨在防止容器之间的连接或方形连接。正如您所看到的,这将在一个非常分层的数据模型中使用。

我试图通过添加更多endpoint选项(取消对测试的注释)来设置新的endpoint行为,但这会在jsPlumb中产生某种合并错误

var common = {
anchors: ["BottomCenter", "TopCenter"],
//endpoints: [{
//    isSource: true,
//    isTarget: false,
//}, {
//    isSource: false,
//    isTarget: true,
//}],
endpointStyles: [exampleGreyEndpointOptions, endpointOptions],
paintStyle: {strokeStyle: color}
};

我没有主意,也不知道如何解决这个错误。我想要的行为是,还可以通过以编程方式绘制连接,从endpoint绘制/拖动新连接(或删除现有连接)

API ref:http://jsplumbtoolkit.com/apidocs/Connection.html

文件:http://jsplumbtoolkit.com/doc/connections#programmatic

共有1个答案

康照
2023-03-14

为了保留endpoint选项,您需要通过容器的endpoint而不是容器的ID来连接容器。我已经根据容器给了endpointuuid并连接了它们。例如,container0具有endpointuuid container0sr(源)和container0tr(目标)。

我已经修改了你的JSFIDLE

修改是:

$('.stepnode').each(function(){
    InitContainer($(this));
});

为每个容器的endpoint提供uuid:

uuid:el.attr("id")+"sr" //for source endpoint options
uuid:el.attr("id")+"tr" //for target endpoint options
jsPlumb.connect({uuids:["container1sr","container2tr"]}); //for connecting based on endpoint uuid
 类似资料:
  • 我想画一个流程图。我动态创建div,并为每个div设置了唯一的“id”属性,并使用Jsplumb连接器连接它们。 我从数据库中获取源和目标id(请注意,动态创建的div的“id”属性是其从数据库中的id),并存储在“connectors”json中。其格式如下: {[from:A,to:B],[from:A,to:C],[from:B,to:C]} jsplumb代码如下 问题: 我现在拥有的是

  • 我们正在进行一个项目,该项目使用JSPlumb进行工作流呈现,并维护一个单独的数据模型,其中包括节点(id、位置、文本等)和连接,使用JSPlumb.bind使其与事件保持同步 当我开始重新创建连接时,我使用源和目标参数调用jsPlumb.connect,但ID似乎是在幕后创建的,因此与从数据模型加载的内容不匹配。这将是好的,除了在我不想删除该连接的ID从模型。。。 有没有办法手动设置连接器的ID

  • 我正在使用jsplumb,但是我无法删除两个只有一个div的id的div之间的连接。

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

  • 我正在处理一个管道问题。当我试图以编程方式删除所有元素连接时,我得到了未捕获的TypeError:无法读取未定义的属性“left” 我有几个节点(html元素),每个都有1个输入endpoint(接受的终端)和n个输出endpoint。每个节点后面还有一个javascript对象。我的软件中有一个“选定”状态。用户可以选择多个节点,并将对象推送到一个称为选择的数组。我有一个删除键的键侦听器。当按下

  • 使用jsPlumb,我成功地进行了以下设置: 有多个节点与特殊类型流程图中的节点类似。 先举个小例子:http://fiddle.darkspot.ch/ivr/flowchart/ivrplumb.html (经过一个小时的尝试,不幸的是我没有让它在JSFIDLE上运行——所以我自己主持了它) 我想要实现的是:如果用户将新连接从一个出口拖到另一个节点,那么应该按照预期建立连接。但是应该删除此出口