jsPlumb的连线返回的sourceId或targetId不正确?

点击我查看例子
使用jsplumb开发连接线条的功能,但是如果滚动条把当前连线的item滚到视线之外,然后获取线条数据,发现sourceId或者targetId不正确,请问如何解决?
正常是这样的:
异常是这样的:

阅读 695
avatarAI BotBETA

您遇到的这个问题可能是由于jsPlumb内部对元素的定位逻辑导致的。当DOM元素(包括jsPlumb连接的源或目标元素)滚动出视口时,jsPlumb可能无法正确识别或更新与这些元素相关的连接信息。

为了解决这个问题,您可以尝试以下步骤:

  1. 确保jsPlumb已正确更新: 确保在滚动事件或任何可能改变元素位置的操作后,调用jsPlumb的更新或重绘函数来刷新连接状态。jsPlumb提供了repaintrevalidate等函数,您可以在需要时调用它们。
  2. 监听滚动事件: 如果滚动事件是导致问题的原因,您可以通过监听滚动事件并在滚动发生时调用jsPlumb的更新函数来解决问题。例如,使用jQuery或原生JavaScript监听scroll事件。
  3. 使用jsPlumb的setContainer方法: 如果您在一个可滚动的容器中使用了jsPlumb,确保使用setContainer方法设置了正确的容器。这样jsPlumb就可以正确地计算位置,即使元素滚动出视口。
  4. 检查元素ID的稳定性: 确保在jsPlumb创建连接之前和之后,元素的ID没有发生变化。如果元素的ID在运行时发生变化,jsPlumb的连接数据可能会变得不准确。
  5. 查看jsPlumb文档和社区: jsPlumb的文档和社区论坛可能包含解决类似问题的信息或示例。您可以搜索相关的问题或发帖询问。
  6. 更新jsPlumb版本: 如果您使用的是较旧的jsPlumb版本,考虑更新到最新版本。新版本可能已经修复了您遇到的问题。

请注意,由于我无法直接访问您提供的链接或图片,我的回答是基于您描述的问题和jsPlumb的常见行为。如果以上建议不能解决您的问题,您可能需要进一步调试或提供更多的代码和上下文信息来寻求更具体的帮助。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏