jsPlumb:我如何选择特定的连接器

问题描述:

我似乎无法弄清楚如何选择特定的jsPlumb连接器。我知道我可以选择与源或目标有关的所有连接器,但我经常会在同一源和目标之间有多个连接器,所以我没有看到在这种情况下能够选择特定连接器的方法。jsPlumb:我如何选择特定的连接器

我的具体使用情况是如下:

如果用户点击一个连接器,给他们一个对话框,允许他们编辑连接。 (即设置标签名称,删除连接)。现在,如果他们设置标签或删除连接,我不得不分离图中的所有内容,然后重新绘制所有内容。这种方法起作用了,只要能够分离已修改的一个连接或只是更改其标签就可以看起来更清晰。

想法?

据我了解你的问题,你想分离连接,当用户点击它。

你需要做什么:

  1. 注册“点击”听者jsPlumb events

  2. 一旦点击就会触发事件触发事件 连接使用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); 
      }); 
     }); 

Original demo - Updated Demo

+1

哇,我真的没有解释我的问题很好。大声笑。我相信我的问题的基础是,当单击连接器时,我不知道如何确定数据库中的哪个连接对象被点击。然而,我发现我可以在连接器上设置一个ID,这给了我一个解决方案。 – dchapman 2013-03-22 13:13:58

+0

更新了资源 – 2014-05-13 02:12:24

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; 
      } 
     } 

    })