mxgraph 在右击边的时候给边的svg path通过setAttribute方法设置了class属性也使用了graph.refresh()方法但是还是不能让在渲染的时候class属性保留
时间: 2024-03-20 07:44:25 浏览: 94
vue中使用mxgraph的方法实例代码详解
mxGraph 是一个基于 JavaScript 的图形编辑框架,mxGraph 在渲染的时候会生成一些 SVG 元素,这些元素可以通过 setAttribute 方法设置属性,但是在 mxGraph 渲染的过程中可能会导致 setAttribute 方法设置的属性被覆盖或者丢失。
对于你的问题,可能是因为在 mxGraph 渲染的过程中,mxGraph 会重新生成 SVG 元素,覆盖了你设置的 class 属性。可以尝试在 mxGraph 渲染完成后,再次设置 class 属性,具体可以参考以下代码:
```javascript
// 获取边的 SVG 元素
var edge = graph.view.getState(cell);
var path = edge.shape.node.getElementsByTagName('path')[0];
// 设置 class 属性
path.setAttribute('class', 'your-class');
// 在 mxGraph 渲染完成后,再次设置 class 属性
graph.addListener(mxEvent.RENDER, function() {
path.setAttribute('class', 'your-class');
});
```
这样做的原理是在 mxGraph 渲染完成后,重新设置 class 属性,保证 class 属性不会被覆盖。
阅读全文