javascript - mxgraph:我想添加一个按钮来禁用/启用图形和工具栏
问题描述
我试图通过不允许图形上的单元格使用以下代码来禁用图形。
graph.setCellsSelectable(false);
但它不起作用,仍然可以选择单元格,(仅禁用调整大小)
对于要禁用的工具栏,我尝试删除或替换 ondrag 事件,对吗?理论上,我认为 mxgraph 有自己的用于拖动工具栏项的事件处理程序。
mx_toolbar.appendChild(
mxUtils.button("Disable/Enable", function() {
document.querySelectorAll('.toolbar > button').addEventListener(function (e) {
e.preventDefault()
return false;
});
}
)
希望你的帮助。我不介意,只要它是有效的解决方案。谢谢
解决方案
您可以简单地将要禁用的区域与 css 一起覆盖,而不是删除或修改事件处理程序。
var toolbarContainer = document.querySelector(".toolbar");
var overlay = document.querySelector(".toolbar-overlay")
if (!overlay) {
overlay = document.createElement('div')
overlay.className = 'toolbar-overlay'
toolbarContainer.appendChild(overlay)
} else {
overlay.parentNode.removeChild(overlay)
}
这是覆盖 div 的 css
.toolbar-overlay {
position: absolute;
top: 0;
height: 100%;
width: 100%;
opacity: 0.4;
background: #e1e1e1;
}
- 注意:您应该确保覆盖 div 的父 div 必须定位为相对才能使这个 css 工作!
推荐阅读
- codeigniter-3 - 输入字段数组的 myfunction
- r - 如何设置 install_keras() 的 virtualenv?
- javascript - JSON 解析错误:意外的标识符“be”
- mysql - 如何使用逗号拆分列的值并在 MySQL 中显示在行中
- java - Javers SpringBoot 集成 QueryBuilder byInstanceId 返回空结果
- amazon-s3 - Terraform - 在 S3 存储桶上启用请求指标
- python - 如何从python中的类嵌套字典中创建一个表?
- java - 如何在 Liberty 配置文件中使用 MicroProfile FaultTolerance
- reactjs - 任何人都知道为什么我在尝试设置加载状态时不断收到此错误
- google-app-engine - 使用 cloudbuild.yaml 与手动执行“gcloud app delpoy”的云构建触发器