【问题标题】:jsPlumb Endpoint visible: false?jsPlumb端点可见:假?
【发布时间】:2014-09-12 12:01:59
【问题描述】:

我有一个带有 jsPlumb 的动态生成流程图。 我将它保存到 MySQL 数据库,我需要一个不同的视图,而不需要任何编辑功能。

我知道如何删除所有部分以使其不可编辑 但它总是显示连接点(左、右、上、下)

如何使它们不可见,以便在没有连接点的情况下只看到连接器/箭头?

sourceEndpoint = {
    endpoint:["Rectangle",{ width:1, height:1}],
    paintStyle:{ 
        fillStyle:"#db0013",
    },
    maxConnections:999,     
    isSource:false,
    isTarget:false,         
    connector:[ "Flowchart", { stub:[10, 25], gap:0, cornerRadius:0, alwaysRespectStubs:false } ],                                              
    connectorStyle:connectorPaintStyle,
    hoverPaintStyle:endpointHoverStyle,
    connectorHoverStyle:connectorHoverStyle,
    dragOptions:{}       
    },  

宽度和高度 = 1 的矩形使其非常小,但仍然可见 我怎样才能让它隐形? :)

谢谢你

xQp

【问题讨论】:

    标签: javascript jsplumb invisible


    【解决方案1】:

    还有两种方法:

    1. 使用空白端点类型。 It does not draw anything visible to the user.

    2. 将 cssClass 添加到 sourceEndpoint 选项

      sourceEndpoint = {
      ... other options ...
          cssClass: 'source-endpoint'
      }
      

      和css样式

      .source-endpoint svg * {
          fill: transparent;
          stroke: transparent;
      }
      

    【讨论】:

      【解决方案2】:

      由于没有获取所有端点的功能,因此您需要获取所有具有端点的元素,然后对于单个元素的每个端点,您需要将其设置为 false:

      var elem = $('.havingEndpoint'); // get elements having endpoint based on its class
      
      for(var i=0;i<elem.length;i++)   // for all elements having endpoints iterate
      {
           var eps=jsPlumb.getEndpoints($(elem[i]));  //get all endpoints of element
           for(var j=0;j<eps.length;j++)
           {
                eps[j].setVisible(false);   // Set visibility of endpoint to false
           }
       }
      

      更多请参考 API DOC'S:

      ->Getting endpoints for an element

      ->Setting visibility for endpoint

      【讨论】:

        【解决方案3】:

        在当前版本中,有连接和端点的选择方法,

        并且返回值是一个支持大多数操作的对象 您可以在端点上执行

        在此处查看文档:http://jsplumb.github.io/jsplumb/querying.html#selectEndpoints

        例如,隐藏所有端点:

        jsPlumb.selectEndpoints().setVisible(false);
        

        【讨论】:

          【解决方案4】:

          http://www.jsplumb.org/doc/endpoints.html 我注意到您可以将 css 添加到端点。你不能只使用 css "display:none" 吗?

          【讨论】:

          • 试过了,但没用可能会直接在php而不是外部CSS重试
          猜你喜欢
          • 2014-01-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-03-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多