jsplumb 线更新后 拖拽报错
时间: 2023-10-06 08:12:50 浏览: 112
可能是因为你更新了jsplumb的线的位置,但是拖拽元素的位置没有同步更新。在jsplumb中,更新线的位置时需要同时更新源点和目标点的位置,否则会出现拖拽报错的情况。你可以尝试在更新线的位置时,同时更新源点和目标点的位置,再进行拖拽操作。如果还有问题,可以提供更详细的错误信息或代码,我可以帮你更好地解决问题。
相关问题
JsPlumb连接线拖拽
您好,JsPlumb是一个流程图库,它可以实现连接线拖拽和多种效果。实现JsPlumb连接线拖拽功能的方式有多种,下面给出其中一种实现方式:
1. 在拖拽元素上绑定dragstart和dragend事件,分别在事件处理函数中调用jsPlumb.connect()方法和jsPlumb.deleteConnection()方法。
2. 在页面加载时,先初始化jsPlumb对象,如下所示:
```
jsPlumb.ready(function() {
jsPlumb.importDefaults({
Connector : ["Bezier", { curviness:63 }],// 连接器形状及曲度
Anchors:["RightMiddle", "LeftMiddle"] // 锚点位置
});
var connect = jsPlumb.connect({
source:"element1", // 源元素
target:"element2" // 目标元素
});
});
```
3. 在连接线上绑定click事件,调用jsPlumb.detach(connection)方法删除连接线。
JSPlumb节点拖动后,盒子端点没有跟着移动
JSPlumb 是一个流程图和连接库,如果您的节点拖动后,盒子端点没有跟着移动,可能是因为您没有正确设置端点的位置。您可以在节点拖动结束后,手动更新每个端点的位置,以确保它们跟随节点移动。
您可以在节点拖动事件的回调函数中,使用 JSPlumb 的 `updateEndpoint` 方法来更新端点的位置。例如,假设您的节点 ID 是 `node1`,端点的 ID 是 `endpoint1`,您可以使用以下代码来更新端点的位置:
```
jsPlumbInstance.updateEndpoint('endpoint1', {
anchor: 'Continuous',
endpoint: 'Dot',
isSource: true,
isTarget: true,
cssClass: 'endpoint',
connector: ['Bezier', { curviness: 150 }],
connectorStyle: {
stroke: '#5c96bc',
strokeWidth: 2
},
endpointStyle: {
fill: '#5c96bc',
radius: 4
}
}, {
anchor: 'Continuous',
uuid: 'node1'
});
```
在上面的代码中,第一个参数是端点的 ID,第二个参数是端点的配置选项,第三个参数是端点所连接的节点的 ID。您需要将这段代码放在节点拖动事件的回调函数中,并调用它来更新每个端点的位置。
希望这可以帮助您解决问题。