mxGraph如何监听单元格移动或调整大小事件并输出单元格值
mxGraph 单元格移动、调整大小监听实现方案
你之前监听未生效是因为移动、调整大小类事件的返回属性结构和LABEL_CHANGED不同,且需使用操作完成后触发的对应事件:
- 单元格移动完成会触发
mxEvent.CELLS_MOVED事件 - 单元格调整大小完成会触发
mxEvent.CELLS_RESIZED事件 - 这两个事件携带的所有被操作单元格存在
cells数组属性中,支持批量操作场景的监听
你只需要在原有LABEL_CHANGED监听代码的位置新增以下代码即可:
// 监听单元格移动完成事件 graph.addListener(mxEvent.CELLS_MOVED, function (sender, evt) { const moveCells = evt.getProperty('cells'); moveCells.forEach(cell => { if (cell) { console.log('移动单元格值:', cell.value); } }); }); // 监听单元格大小调整完成事件 graph.addListener(mxEvent.CELLS_RESIZED, function (sender, evt) { const resizeCells = evt.getProperty('cells'); resizeCells.forEach(cell => { if (cell) { console.log('调整大小单元格值:', cell.value); } }); });
如果需要在操作触发前做拦截校验,可以替换为mxEvent.MOVE_CELLS和mxEvent.RESIZE_CELLS事件,属性获取逻辑一致。
内容的提问来源于stack exchange,提问作者Khanh Tran
相关产品推荐
相关产品推荐

