如何捕获AnyChart甘特图组件中的连接器删除事件?
AnyChart甘特图连接器删除事件捕获方案
你没遗漏官方文档的内容——AnyChart确实没有单独为连接器的删除操作标注专属事件,但可以通过两种通用方式捕获这个行为:
- 方法一:监听图表
remove事件
AnyChart的所有图表元素(包括连接器)被删除时,都会触发图表的remove事件。你可以通过事件对象判断被删除的元素类型:
// 假设gantt是你的甘特图实例 gantt.listen('remove', function(e) { // 校验被删除元素是否为连接器 if (e.target.type === 'connector') { console.log('连接器已删除,ID:', e.target.id()); // 此处编写你的业务逻辑 } });
- 方法二:监听键盘删除事件+选中状态校验
既然删除操作是选中连接器后按Delete键触发的,也可以直接监听键盘事件,结合当前选中元素的类型判断:
document.addEventListener('keydown', function(e) { if (e.key === 'Delete') { const selectedElement = gantt.selected(); // 确认选中的是连接器 if (selectedElement && selectedElement.type === 'connector') { console.log('连接器即将被删除,ID:', selectedElement.id()); // 此处编写你的业务逻辑 } } });
官方文档仅说明手动删除步骤,未单独提及事件捕获方法的原因是:连接器的删除事件属于图表元素的通用生命周期事件,被归类在基础元素事件体系中,而非作为连接器的专属事件单独列出。
内容的提问来源于stack exchange,提问作者Danish Nayeem
相关产品推荐
相关产品推荐

