You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在jsPlumb中一次性拖动连接到同一端点的所有连线?

问题描述

节点连接示例图
请问是否可以同时拖动多条连线?
如示例图所示,节点1、节点2均与节点3相连,是否可以在jsPlumb中通过单次拖动操作移动这些连线?

解决方案

可以通过自定义逻辑实现该需求,jsPlumb本身没有提供开箱即用的批量连线拖拽能力,具体实现步骤如下:

  • 批量选中目标连线
    可以给连线绑定点击、框选事件,给选中的连线添加自定义标识类(例如selected-connection),也可以直接通过getConnections接口批量拉取指定节点关联的所有连线,示例如下:
    // 获取和节点3关联的所有连线
    const targetConnections = jsPlumb.getConnections({
      target: 'node3'
    })
    
  • 绑定同步拖动逻辑
    如果是通过拖动关联节点(例如示例中的节点3)触发连线批量移动,只需要在节点的拖动事件回调中同步重绘所有待移动连线即可:
    jsPlumb.draggable('node3', {
      // 拖动过程中实时重绘所有关联连线
      drag: () => {
        targetConnections.forEach(conn => jsPlumb.repaint(conn.id))
      }
    })
    

如果需要实现直接选中多条连线后平移、不依赖关联节点拖动的效果,需要额外监听画布的鼠标事件计算拖动偏移量,手动修改所有选中连线的路径坐标后再统一触发重绘即可。

内容的提问来源于stack exchange,提问作者SzymonS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 01:39:00