如何完全禁用元素事件



我使用复合模型和cytoscape复合拖放扩展,让用户通过将一些节点分组在一起并轻松移动整个组来手动重新组织布局。

现在我想要一个按钮来切换这些组"框"的显示,但保持显示所有非父节点。我首先在父节点上尝试了hide((,但它也隐藏了子节点,所以我切换到动态应用一个指定display的类:hided
它似乎做到了,但仍然可以点击隐藏框,并应用cytoscape默认的点击"视觉反馈",显示隐藏框仍然所在的区域

我尝试了很多不起作用的事情:
-从我的隐藏样式类中禁用事件:尝试的事件:否我应该将此报告为错误吗
-.ungrabify((.unincify((.panify((.lock((
-点击:销毁事件对象
-set e.target_private.active=false

我尝试了一个讨厌的破解:设置e.target.private.position={}事件仍然被触发,但破坏位置成功阻止了"视觉反馈"的发生,我的盒子有效地保持"隐藏"状态。但事件仍然发生在错误的目标上:盒子,而不是细胞景观容器的空白处。我可以继续黑客攻击,然后离开,但没有更简单的解决方案吗?

是否可以简单而真实地通过隐藏的父节点事件

您没有正确使用events

cy.$('node').forEach(node => {
node.events = 'no'; // will not work
});

以下操作确实有效,您也可以随时恢复事件。

cy.$('node').forEach(node => {
node.style('events', 'no');
});

最新更新