先附上一位前辈的记录,都是很实用的内容,也是我之前踩过的坑。
然后是我自己的踩坑记录,目前只记了1条,附图如下:
(本次问题出现在 Vue3 的项目中)
问题说明:
我在拖拽时选定的终点是“目标表”的“field3”,但实际上的终点跑到了容器的右下角。并且我设置的宽高只有截图的方框那么大,正常来说根本不会出现滚动条,这完全是莫名其妙撑开的。
解决:
这不是 position 定位的问题,也不是 jsPlumb 的 API 使用错误,而是 jsPlumb 的初始化时机不对,我把初始化的代码放到了 initJsPlumb() 方法中,紧接着在该方法的下面就直接写了调用 “initJsPlumb()”,然后在其他地方初始化节点“creadeNode()”,就产生了这样的错误。
后来当我把初始化 jsPlumb 的方法写在初始化节点的方法前,错误就消失了。
// 错误
const initJsPlumb = () => { // 代码内容... }
initJsPlumb() // 紧跟着就直接调用
// 正确
// nextStep 触发后,展示 jsPlumb 的内容
const nextStep = () => {
// 其他代码...
nextTick(() => {
initJsPlumb() // 将初始化的方法调整到这里,就没问题了
createNode('源表', ['field1', 'field2'])
createNode('目标表', ['field3', 'field4', 'field5', 'field6'])
})
}